Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.119
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
phpmyadmin /
libraries /
Delete
Unzip
Name
Size
Permission
Date
Action
bfShapeFiles
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
config
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
controllers
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
dbi
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
di
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
engines
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
gis
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
navigation
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
plugins
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
properties
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
rte
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
sql-parser
[ DIR ]
drwxrwxrwx
2022-03-20 10:35
Advisor.php
15.13
KB
-rw-r--r--
2017-01-23 20:20
Config.php
54.69
KB
-rw-r--r--
2020-10-23 14:39
Console.php
14.82
KB
-rw-r--r--
2017-01-23 20:20
DatabaseInterface.php
95.6
KB
-rw-r--r--
2017-01-23 20:20
DbList.php
1.9
KB
-rw-r--r--
2017-01-23 20:20
DbQbe.php
68.87
KB
-rw-r--r--
2017-01-23 20:20
DbSearch.php
17.21
KB
-rw-r--r--
2017-01-23 20:20
DisplayResults.php
206
KB
-rw-r--r--
2020-10-23 14:39
Error.php
12.7
KB
-rw-r--r--
2017-01-23 20:20
ErrorHandler.php
16.48
KB
-rw-r--r--
2017-01-23 20:20
File.php
18.82
KB
-rw-r--r--
2017-01-23 20:20
Font.php
4.24
KB
-rw-r--r--
2017-01-23 20:20
Footer.php
10.52
KB
-rw-r--r--
2020-10-23 14:39
Header.php
25.34
KB
-rw-r--r--
2017-01-23 20:20
Index.php
23.79
KB
-rw-r--r--
2017-01-23 20:20
IndexColumn.php
4.46
KB
-rw-r--r--
2017-01-23 20:20
Language.php
4.27
KB
-rw-r--r--
2017-01-23 20:20
LanguageManager.php
20.75
KB
-rw-r--r--
2017-01-23 20:20
Linter.php
5.02
KB
-rw-r--r--
2017-01-23 20:20
ListAbstract.php
3.15
KB
-rw-r--r--
2017-01-23 20:20
ListDatabase.php
4.62
KB
-rw-r--r--
2017-01-23 20:20
Menu.php
21.14
KB
-rw-r--r--
2017-01-23 20:20
Message.php
18.67
KB
-rw-r--r--
2017-01-23 20:20
OutputBuffering.php
3.59
KB
-rw-r--r--
2017-01-23 20:20
PDF.php
3.94
KB
-rw-r--r--
2017-01-23 20:20
Partition.php
7.26
KB
-rw-r--r--
2017-01-23 20:20
Psr4Autoloader.php
4.85
KB
-rw-r--r--
2017-01-23 20:20
RecentFavoriteTable.php
11.78
KB
-rw-r--r--
2017-01-23 20:20
Response.php
12.61
KB
-rw-r--r--
2017-01-23 20:20
SavedSearches.php
11.67
KB
-rw-r--r--
2017-01-23 20:20
Scripts.php
7.38
KB
-rw-r--r--
2017-01-23 20:20
ServerStatusData.php
15.72
KB
-rw-r--r--
2017-01-23 20:20
StorageEngine.php
13.61
KB
-rw-r--r--
2017-01-23 20:20
SubPartition.php
3.52
KB
-rw-r--r--
2017-01-23 20:20
SysInfo.php
799
B
-rw-r--r--
2017-01-23 20:20
SysInfoLinux.php
1.92
KB
-rw-r--r--
2017-01-23 20:20
SysInfoSunOS.php
1.86
KB
-rw-r--r--
2017-01-23 20:20
SysInfoWINNT.php
3.08
KB
-rw-r--r--
2017-01-23 20:20
SystemDatabase.php
3.66
KB
-rw-r--r--
2017-01-23 20:20
Table.php
88.12
KB
-rw-r--r--
2017-01-23 20:20
Template.php
4.45
KB
-rw-r--r--
2017-01-23 20:20
Theme.php
11.34
KB
-rw-r--r--
2017-01-23 20:20
ThemeManager.php
12.91
KB
-rw-r--r--
2017-01-23 20:20
Tracker.php
30.35
KB
-rw-r--r--
2017-01-23 20:20
Types.php
6.08
KB
-rw-r--r--
2017-01-23 20:20
TypesMySQL.php
17.26
KB
-rw-r--r--
2017-01-23 20:20
Util.php
172.46
KB
-rw-r--r--
2020-10-23 14:39
VersionInformation.php
7.87
KB
-rw-r--r--
2017-01-23 20:20
ZipFile.php
6.63
KB
-rw-r--r--
2017-01-23 20:20
advisor.lib.php
1.6
KB
-rw-r--r--
2017-01-23 20:20
advisory_rules.txt
25.94
KB
-rw-r--r--
2017-01-23 20:20
autoloader.php
450
B
-rw-r--r--
2017-01-23 20:20
bookmark.lib.php
8.5
KB
-rw-r--r--
2017-01-23 20:20
browse_foreigners.lib.php
9.83
KB
-rw-r--r--
2017-01-23 20:20
central_columns.lib.php
49.38
KB
-rw-r--r--
2017-01-23 20:20
charset_conversion.lib.php
3.54
KB
-rw-r--r--
2017-01-23 20:20
check_user_privileges.lib.php
10.65
KB
-rw-r--r--
2017-01-23 20:20
cleanup.lib.php
1.29
KB
-rw-r--r--
2017-01-23 20:20
common.inc.php
34.38
KB
-rw-r--r--
2020-10-23 14:39
config.default.php
66.5
KB
-rw-r--r--
2017-01-23 20:20
config.values.php
10.17
KB
-rw-r--r--
2017-01-23 20:20
core.lib.php
29.94
KB
-rw-r--r--
2017-01-23 20:20
create_addfield.lib.php
15.68
KB
-rw-r--r--
2017-01-23 20:20
database_interface.inc.php
2.63
KB
-rw-r--r--
2017-01-23 20:20
db_common.inc.php
3.12
KB
-rw-r--r--
2017-01-23 20:20
db_designer.lib.php
10.4
KB
-rw-r--r--
2020-10-23 14:39
db_table_exists.lib.php
3.21
KB
-rw-r--r--
2017-01-23 20:20
display_change_password.lib.php
5.45
KB
-rw-r--r--
2017-01-23 20:20
display_create_table.lib.php
1.53
KB
-rw-r--r--
2017-01-23 20:20
display_export.lib.php
38.11
KB
-rw-r--r--
2017-01-23 20:20
display_git_revision.lib.php
3.04
KB
-rw-r--r--
2020-10-23 14:39
display_import.lib.php
24.34
KB
-rw-r--r--
2017-01-23 20:20
display_import_ajax.lib.php
3.13
KB
-rw-r--r--
2017-01-23 20:20
display_select_lang.lib.php
2.36
KB
-rw-r--r--
2017-01-23 20:20
error.inc.php
1.21
KB
-rw-r--r--
2017-01-23 20:20
error_report.lib.php
10.25
KB
-rw-r--r--
2017-01-23 20:20
export.lib.php
35.16
KB
-rw-r--r--
2017-01-23 20:20
file_listing.lib.php
2.37
KB
-rw-r--r--
2017-01-23 20:20
iconv_wrapper.lib.php
3.88
KB
-rw-r--r--
2017-01-23 20:20
import.lib.php
50.64
KB
-rw-r--r--
2017-01-23 20:20
index.lib.php
1.37
KB
-rw-r--r--
2017-01-23 20:20
information_schema_relations.lib.php
10.95
KB
-rw-r--r--
2017-01-23 20:20
insert_edit.lib.php
112.79
KB
-rw-r--r--
2020-10-23 14:39
ip_allow_deny.lib.php
9.35
KB
-rw-r--r--
2017-01-23 20:20
js_escape.lib.php
4.43
KB
-rw-r--r--
2017-01-23 20:20
kanji-encoding.lib.php
4.46
KB
-rw-r--r--
2017-01-23 20:20
language_stats.inc.php
1.45
KB
-rw-r--r--
2017-01-23 20:20
logging.lib.php
521
B
-rw-r--r--
2017-01-23 20:20
mime.lib.php
704
B
-rw-r--r--
2017-01-23 20:20
mult_submits.inc.php
10.64
KB
-rw-r--r--
2017-01-23 20:20
mult_submits.lib.php
20.44
KB
-rw-r--r--
2017-01-23 20:20
mysql_charsets.inc.php
4.09
KB
-rw-r--r--
2017-01-23 20:20
mysql_charsets.lib.php
10.47
KB
-rw-r--r--
2017-01-23 20:20
mysql_relations.lib.php
5.12
KB
-rw-r--r--
2017-01-23 20:20
normalization.lib.php
33.98
KB
-rw-r--r--
2017-01-23 20:20
opendocument.lib.php
7.94
KB
-rw-r--r--
2017-01-23 20:20
operations.lib.php
73.64
KB
-rw-r--r--
2017-01-23 20:20
parse_analyze.lib.php
2.12
KB
-rw-r--r--
2017-01-23 20:20
plugin_interface.lib.php
19.69
KB
-rw-r--r--
2017-01-23 20:20
pmd_common.php
24.2
KB
-rw-r--r--
2020-10-23 14:39
relation.lib.php
68.41
KB
-rw-r--r--
2017-01-23 20:20
relation_cleanup.lib.php
13.84
KB
-rw-r--r--
2017-01-23 20:20
replication.inc.php
8.82
KB
-rw-r--r--
2017-01-23 20:20
replication_gui.lib.php
37.45
KB
-rw-r--r--
2017-01-23 20:20
sanitizing.lib.php
6.3
KB
-rw-r--r--
2017-01-23 20:20
select_server.lib.php
3.4
KB
-rw-r--r--
2017-01-23 20:20
server_common.inc.php
1.22
KB
-rw-r--r--
2017-01-23 20:20
server_common.lib.php
1.92
KB
-rw-r--r--
2017-01-23 20:20
server_privileges.lib.php
179.22
KB
-rw-r--r--
2020-10-23 14:39
server_status.lib.php
9.92
KB
-rw-r--r--
2017-01-23 20:20
server_status_advisor.lib.php
1.89
KB
-rw-r--r--
2017-01-23 20:20
server_status_monitor.lib.php
26.22
KB
-rw-r--r--
2017-01-23 20:20
server_status_processes.lib.php
9.57
KB
-rw-r--r--
2017-01-23 20:20
server_status_queries.lib.php
4.86
KB
-rw-r--r--
2017-01-23 20:20
server_status_variables.lib.php
28.95
KB
-rw-r--r--
2017-01-23 20:20
server_user_groups.lib.php
12.8
KB
-rw-r--r--
2017-01-23 20:20
server_users.lib.php
1.35
KB
-rw-r--r--
2017-01-23 20:20
session.inc.php
5.22
KB
-rw-r--r--
2017-01-23 20:20
session.lib.php
735
B
-rw-r--r--
2017-01-23 20:20
special_schema_links.lib.php
17.51
KB
-rw-r--r--
2017-01-23 20:20
sql.lib.php
77.51
KB
-rw-r--r--
2017-01-23 20:20
sql_query_form.lib.php
15.71
KB
-rw-r--r--
2017-01-23 20:20
string.lib.php
800
B
-rw-r--r--
2017-01-23 20:20
stringMb.lib.php
1.86
KB
-rw-r--r--
2017-01-23 20:20
stringNative.lib.php
6.82
KB
-rw-r--r--
2017-01-23 20:20
sysinfo.lib.php
1.34
KB
-rw-r--r--
2017-01-23 20:20
tbl_columns_definition_form.inc.php
13.55
KB
-rw-r--r--
2017-01-23 20:20
tbl_common.inc.php
1.3
KB
-rw-r--r--
2017-01-23 20:20
tbl_info.inc.php
3.54
KB
-rw-r--r--
2017-01-23 20:20
tbl_partition_definition.inc.php
5.55
KB
-rw-r--r--
2017-01-23 20:20
tracking.lib.php
54.93
KB
-rw-r--r--
2017-01-23 20:20
transformations.lib.php
14.63
KB
-rw-r--r--
2020-10-23 14:39
url_generating.lib.php
6.77
KB
-rw-r--r--
2017-01-23 20:20
user_preferences.inc.php
2.38
KB
-rw-r--r--
2017-01-23 20:20
user_preferences.lib.php
8.17
KB
-rw-r--r--
2017-01-23 20:20
util.lib.php
749
B
-rw-r--r--
2017-01-23 20:20
vendor_config.php
2.49
KB
-rw-r--r--
2020-10-23 14:39
zip_extension.lib.php
5.38
KB
-rw-r--r--
2017-01-23 20:20
Save
Rename
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Hold the PMA\libraries\LanguageManager class * * @package PhpMyAdmin */ namespace PMA\libraries; use PMA\libraries\Language; /** * Language selection manager * * @package PhpMyAdmin */ class LanguageManager { /** * @var array Definition data for languages * * Each member contains: * - Language code * - English language name * - Native language name * - Match regullar expression * - MySQL locale */ private static $_language_data = array( 'af' => array( 'af', 'Afrikaans', '', 'af|afrikaans', '', ), 'ar' => array( 'ar', 'Arabic', 'العربية', 'ar|arabic', 'ar_AE', ), 'az' => array( 'az', 'Azerbaijani', 'Azərbaycanca', 'az|azerbaijani', '', ), 'bn' => array( 'bn', 'Bangla', 'বাংলা', 'bn|bangla', '', ), 'be' => array( 'be', 'Belarusian', 'Беларуская', 'be|belarusian', 'be_BY', ), 'be@latin' => array( 'be@latin', 'Belarusian (latin)', 'Biełaruskaja', 'be[-_]lat|be@latin|belarusian latin', '', ), 'bg' => array( 'bg', 'Bulgarian', 'Български', 'bg|bulgarian', 'bg_BG', ), 'bs' => array( 'bs', 'Bosnian', 'Bosanski', 'bs|bosnian', '', ), 'br' => array( 'br', 'Breton', 'Brezhoneg', 'br|breton', '', ), 'brx' => array( 'brx', 'Bodo', 'बड़ो', 'brx|bodo', '', ), 'ca' => array( 'ca', 'Catalan', 'Català', 'ca|catalan', 'ca_ES', ), 'ckb' => array( 'ckb', 'Sorani', 'سۆرانی', 'ckb|sorani', '', ), 'cs' => array( 'cs', 'Czech', 'Čeština', 'cs|czech', 'cs_CZ', ), 'cy' => array( 'cy', 'Welsh', 'Cymraeg', 'cy|welsh', '', ), 'da' => array( 'da', 'Danish', 'Dansk', 'da|danish', 'da_DK', ), 'de' => array( 'de', 'German', 'Deutsch', 'de|german', 'de_DE', ), 'el' => array( 'el', 'Greek', 'Ελληνικά', 'el|greek', '', ), 'en' => array( 'en', 'English', '', 'en|english', 'en_US', ), 'en_gb' => array( 'en_GB', 'English (United Kingdom)', '', 'en[_-]gb|english (United Kingdom)', 'en_GB', ), 'eo' => array( 'eo', 'Esperanto', 'Esperanto', 'eo|esperanto', '', ), 'es' => array( 'es', 'Spanish', 'Español', 'es|spanish', 'es_ES', ), 'et' => array( 'et', 'Estonian', 'Eesti', 'et|estonian', 'et_EE', ), 'eu' => array( 'eu', 'Basque', 'Euskara', 'eu|basque', 'eu_ES', ), 'fa' => array( 'fa', 'Persian', 'فارسی', 'fa|persian', '', ), 'fi' => array( 'fi', 'Finnish', 'Suomi', 'fi|finnish', 'fi_FI', ), 'fr' => array( 'fr', 'French', 'Français', 'fr|french', 'fr_FR', ), 'fy' => array( 'fy', 'Frisian', 'Frysk', 'fy|frisian', '', ), 'gl' => array( 'gl', 'Galician', 'Galego', 'gl|galician', 'gl_ES', ), 'gu' => array( 'gu', 'Gujarati', 'ગુજરાતી', 'gu|gujarati', 'gu_IN', ), 'he' => array( 'he', 'Hebrew', 'עברית', 'he|hebrew', 'he_IL', ), 'hi' => array( 'hi', 'Hindi', 'हिन्दी', 'hi|hindi', 'hi_IN', ), 'hr' => array( 'hr', 'Croatian', 'Hrvatski', 'hr|croatian', 'hr_HR', ), 'hu' => array( 'hu', 'Hungarian', 'Magyar', 'hu|hungarian', 'hu_HU', ), 'hy' => array( 'hy', 'Armenian', 'Հայերէն', 'hy|armenian', '', ), 'ia' => array( 'ia', 'Interlingua', '', 'ia|interlingua', '', ), 'id' => array( 'id', 'Indonesian', 'Bahasa Indonesia', 'id|indonesian', 'id_ID', ), 'it' => array( 'it', 'Italian', 'Italiano', 'it|italian', 'it_IT', ), 'ja' => array( 'ja', 'Japanese', '日本語', 'ja|japanese', 'ja_JP', ), 'ko' => array( 'ko', 'Korean', '한국어', 'ko|korean', 'ko_KR', ), 'ka' => array( 'ka', 'Georgian', 'ქართული', 'ka|georgian', '', ), 'kk' => array( 'kk', 'Kazakh', 'Қазақ', 'kk|kazakh', '', ), 'km' => array( 'km', 'Khmer', 'ខ្មែរ', 'km|khmer', '', ), 'kn' => array( 'kn', 'Kannada', 'ಕನ್ನಡ', 'kn|kannada', '', ), 'ksh' => array( 'ksh', 'Colognian', 'Kölsch', 'ksh|colognian', '', ), 'ky' => array( 'ky', 'Kyrgyz', 'Кыргызча', 'ky|kyrgyz', '', ), 'li' => array( 'li', 'Limburgish', 'Lèmbörgs', 'li|limburgish', '', ), 'lt' => array( 'lt', 'Lithuanian', 'Lietuvių', 'lt|lithuanian', 'lt_LT', ), 'lv' => array( 'lv', 'Latvian', 'Latviešu', 'lv|latvian', 'lv_LV', ), 'mk' => array( 'mk', 'Macedonian', 'Macedonian', 'mk|macedonian', 'mk_MK', ), 'ml' => array( 'ml', 'Malayalam', 'Malayalam', 'ml|malayalam', '', ), 'mn' => array( 'mn', 'Mongolian', 'Монгол', 'mn|mongolian', 'mn_MN', ), 'ms' => array( 'ms', 'Malay', 'Bahasa Melayu', 'ms|malay', 'ms_MY', ), 'ne' => array( 'ne', 'Nepali', 'नेपाली', 'ne|nepali', '', ), 'nb' => array( 'nb', 'Norwegian', 'Norsk', 'nb|norwegian', 'nb_NO', ), 'nl' => array( 'nl', 'Dutch', 'Nederlands', 'nl|dutch', 'nl_NL', ), 'pa' => array( 'pa', 'Punjabi', 'ਪੰਜਾਬੀ', 'pa|punjabi', '', ), 'pl' => array( 'pl', 'Polish', 'Polski', 'pl|polish', 'pl_PL', ), 'pt_br' => array( 'pt_BR', 'Brazilian Portuguese', 'Português', 'pt[-_]br|brazilian portuguese', 'pt_BR', ), 'pt' => array( 'pt', 'Portuguese', 'Português', 'pt|portuguese', 'pt_PT', ), 'ro' => array( 'ro', 'Romanian', 'Română', 'ro|romanian', 'ro_RO', ), 'ru' => array( 'ru', 'Russian', 'Русский', 'ru|russian', 'ru_RU', ), 'si' => array( 'si', 'Sinhala', 'සිංහල', 'si|sinhala', '', ), 'sk' => array( 'sk', 'Slovak', 'Slovenčina', 'sk|slovak', 'sk_SK', ), 'sl' => array( 'sl', 'Slovenian', 'Slovenščina', 'sl|slovenian', 'sl_SI', ), 'sq' => array( 'sq', 'Slbanian', 'Shqip', 'sq|albanian', 'sq_AL', ), 'sr@latin' => array( 'sr@latin', 'Serbian (latin)', 'Srpski', 'sr[-_]lat|sr@latin|serbian latin', 'sr_YU', ), 'sr' => array( 'sr', 'Serbian', 'Српски', 'sr|serbian', 'sr_YU', ), 'sv' => array( 'sv', 'Swedish', 'Svenska', 'sv|swedish', 'sv_SE', ), 'ta' => array( 'ta', 'Tamil', 'தமிழ்', 'ta|tamil', 'ta_IN', ), 'te' => array( 'te', 'Telugu', 'తెలుగు', 'te|telugu', 'te_IN', ), 'th' => array( 'th', 'Thai', 'ภาษาไทย', 'th|thai', 'th_TH', ), 'tk' => array( 'tk', 'Turkmen', 'Türkmençe', 'tk|turkmen', '', ), 'tr' => array( 'tr', 'Turkish', 'Türkçe', 'tr|turkish', 'tr_TR', ), 'tt' => array( 'tt', 'Tatarish', 'Tatarça', 'tt|tatarish', '', ), 'ug' => array( 'ug', 'Uyghur', 'ئۇيغۇرچە', 'ug|uyghur', '', ), 'uk' => array( 'uk', 'Ukrainian', 'Українська', 'uk|ukrainian', 'uk_UA', ), 'ur' => array( 'ur', 'Urdu', 'اُردوُ', 'ur|urdu', 'ur_PK', ), 'uz@latin' => array( 'uz@latin', 'Uzbek (latin)', 'O‘zbekcha', 'uz[-_]lat|uz@latin|uzbek-latin', '', ), 'uz' => array( 'uz', 'Uzbek (cyrillic)', 'Ўзбекча', 'uz[-_]cyr|uz@cyrillic|uzbek-cyrillic', '', ), 'vi' => array( 'vi', 'Vietnamese', 'Tiếng Việt', 'vi|vietnamese', 'vi_VN', ), 'vls' => array( 'vls', 'Flemish', 'West-Vlams', 'vls|flemish', '', ), 'zh_tw' => array( 'zh_TW', 'Chinese traditional', '中文', 'zh[-_](tw|hk)|chinese traditional', 'zh_TW', ), // only TW and HK use traditional Chinese while others (CN, SG, MY) // use simplified Chinese 'zh_cn' => array( 'zh_CN', 'Chinese simplified', '中文', 'zh(?)([-_][[:alpha:]]{2,3})?|chinese simplified', 'zh_CN', ), ); private $_available_locales; private $_available_languages; private $_lang_failed_cfg; private $_lang_failed_cookie; private $_lang_failed_request; private static $instance; /** * Returns LanguageManager singleton * * @return LanguageManager */ public static function getInstance() { if (self::$instance === NULL) { self::$instance = new LanguageManager; } return self::$instance; } /** * Returns list of available locales * * @return array */ public function listLocaleDir() { $result = array('en'); /* Check for existing directory */ if (!is_dir(LOCALE_PATH)) { return $result; } /* Open the directory */ $handle = @opendir(LOCALE_PATH); /* This can happen if the kit is English-only */ if ($handle === false) { return $result; } /* Process all files */ while (false !== ($file = readdir($handle))) { $path = LOCALE_PATH . '/' . $file . '/LC_MESSAGES/phpmyadmin.mo'; if ($file != "." && $file != ".." && @file_exists($path) ) { $result[] = $file; } } /* Close the handle */ closedir($handle); return $result; } /** * Returns (cached) list of all available locales * * @return array of strings */ public function availableLocales() { if (! $this->_available_locales) { if (empty($GLOBALS['cfg']['FilterLanguages'])) { $this->_available_locales = $this->listLocaleDir(); } else { $this->_available_locales = preg_grep( '@' . $GLOBALS['cfg']['FilterLanguages'] . '@', $this->listLocaleDir() ); } } return $this->_available_locales; } /** * Returns (cached) list of all available languages * * @return array of Language objects */ public function availableLanguages() { if (! $this->_available_languages) { $this->_available_languages = array(); foreach($this->availableLocales() as $lang) { $lang = strtolower($lang); if (isset($this::$_language_data[$lang])) { $data = $this::$_language_data[$lang]; $this->_available_languages[$lang] = new Language( $data[0], $data[1], $data[2], $data[3], $data[4] ); } else { $this->_available_languages[$lang] = new Language( $lang, ucfirst($lang), ucfirst($lang), $lang, '' ); } } } return $this->_available_languages; } /** * Returns (cached) list of all available languages sorted * by name * * @return array of Language objects */ public function sortedLanguages() { $this->availableLanguages(); uasort($this->_available_languages, function($a, $b) { return $a->cmp($b); } ); return $this->_available_languages; } /** * Return Language object for given code * * @param string $code Language code * * @return object|false Language object or false on failure */ public function getLanguage($code) { $code = strtolower($code); $langs = $this->availableLanguages(); if (isset($langs[$code])) { return $langs[$code]; } return false; } /** * Return currently active Language object * * @return object Language object */ public function getCurrentLanguage() { return $this->_available_languages[strtolower($GLOBALS['lang'])]; } /** * Activates language based on configuration, user preferences or * browser * * @return Language */ public function selectLanguage() { // check forced language if (! empty($GLOBALS['cfg']['Lang'])) { $lang = $this->getLanguage($GLOBALS['cfg']['Lang']); if ($lang !== false) { return $lang; } $this->_lang_failed_cfg = true; } // 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'])) { $lang = $this->getLanguage($_POST['lang']); if ($lang !== false) { return $lang; } $this->_lang_failed_request = true; } // check user requested language (GET) if (! empty($_GET['lang'])) { $lang = $this->getLanguage($_GET['lang']); if ($lang !== false) { return $lang; } $this->_lang_failed_request = true; } // check previous set language if (! empty($_COOKIE['pma_lang'])) { $lang = $this->getLanguage($_COOKIE['pma_lang']); if ($lang !== false) { return $lang; } $this->_lang_failed_cookie = true; } $langs = $this->availableLanguages(); // try to find out user's language by checking its HTTP_ACCEPT_LANGUAGE variable; $accepted_languages = PMA_getenv('HTTP_ACCEPT_LANGUAGE'); if ($accepted_languages) { foreach (explode(',', $accepted_languages) as $header) { foreach ($langs as $language) { if ($language->matchesAcceptLanguage($header)) { return $language; } } } } // try to find out user's language by checking its HTTP_USER_AGENT variable $user_agent = PMA_getenv('HTTP_USER_AGENT'); if (! empty($user_agent)) { foreach ($langs as $language) { if ($language->matchesUserAgent($user_agent)) { return $language; } } } // Didn't catch any valid lang : we use the default settings if (isset($langs[$GLOBALS['cfg']['DefaultLang']])) { return $langs[$GLOBALS['cfg']['DefaultLang']]; } // Fallback to English return $langs['en']; } /** * Displays warnings about invalid languages. This needs to be postponed * to show messages at time when language is initialized. * * @return void */ public function showWarnings() { // now, that we have loaded the language strings we can send the errors if ($this->_lang_failed_cfg || $this->_lang_failed_cookie || $this->_lang_failed_request ) { trigger_error( __('Ignoring unsupported language code.'), E_USER_ERROR ); } } }