From a04823f4c41fdc3536aaee1eae9bce78f7d4391f Mon Sep 17 00:00:00 2001 From: Joshi yogesh Date: Wed, 16 Apr 2025 16:33:52 +0530 Subject: [PATCH] Add Hindi (hi) language translation file for Adminer This commit adds a new Hindi (hi) translation file for Adminer, based on the existing Bengali (bn) language file. All interface strings have been translated from Bengali to Hindi to make Adminer more accessible to Hindi-speaking users. The structure of the file follows the format used in other language files within the repository. The translations were carefully reviewed to ensure accuracy, readability, and consistency with the context of the Adminer application. File added: - lang/hi.inc.php Looking forward to your feedback and happy to make any improvements as needed! --- CHANGELOG.md | 1 + adminer/include/lang.inc.php | 1 + adminer/lang/hi.inc.php | 264 +++++++++++++++++++++++++++++++++++ lang.php | 2 +- 4 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 adminer/lang/hi.inc.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 096be7bc..74eed5ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - PostgreSQL: Support calling functions returning table (bug #1040) - Designs: adminer.css with 'prefers-color-scheme: dark' don't disable dark mode - Plugins: Method bodyClass() to add <body class> +- Hindi translation ## Adminer 5.2.1 (released 2025-04-11) - Fix search anywhere (bug #1004, regression from 5.1.1) diff --git a/adminer/include/lang.inc.php b/adminer/include/lang.inc.php index 49735481..d648cea3 100644 --- a/adminer/include/lang.inc.php +++ b/adminer/include/lang.inc.php @@ -66,6 +66,7 @@ function langs(): array { 'fr' => 'Français', // Francis Gagné, Aurélien Royer 'gl' => 'Galego', // Eduardo Penabad Ramos 'he' => 'עברית', // Binyamin Yawitz - https://stuff-group.com/ + 'hi' => 'हिन्दी', // Joshi yogesh 'hu' => 'Magyar', // Borsos Szilárd (Borsosfi) - http://www.borsosfi.hu, info@borsosfi.hu 'id' => 'Bahasa Indonesia', // Ivan Lanin - http://ivan.lanin.org 'it' => 'Italiano', // Alessandro Fiorotto, Paolo Asperti diff --git a/adminer/lang/hi.inc.php b/adminer/lang/hi.inc.php new file mode 100644 index 00000000..5c9d0c85 --- /dev/null +++ b/adminer/lang/hi.inc.php @@ -0,0 +1,264 @@ + 'लॉगिन', + 'Logout successful.' => 'सफलतापूर्वक लॉगआउट हो गया।', + 'Invalid credentials.' => 'गलत पासवर्ड।', + 'Server' => 'सर्वर', + 'Username' => 'उपयोगकर्ता नाम', + 'Password' => 'पासवर्ड', + 'Select database' => 'डेटाबेस चुनें', + 'Invalid database.' => 'अमान्य डेटाबेस।', + 'Table has been dropped.' => 'टेबल हटा दिया गया है।', + 'Table has been altered.' => 'टेबल बदल दिया गया है।', + 'Table has been created.' => 'टेबल बनाया गया है।', + 'Alter table' => 'टेबल बदलें', + 'Create table' => 'टेबल बनाएं', + 'Table name' => 'टेबल का नाम', + 'engine' => 'इंजन', + 'collation' => 'कॉलेशन', + 'Column name' => 'कॉलम का नाम', + 'Type' => 'प्रकार', + 'Length' => 'लंबाई', + 'Auto Increment' => 'ऑटो इंक्रीमेंट', + 'Options' => 'विकल्प', + 'Save' => 'सहेजें', + 'Drop' => 'हटाएं', + 'Database has been dropped.' => 'डेटाबेस हटा दिया गया है।', + 'Database has been created.' => 'डेटाबेस बनाया गया है।', + 'Database has been renamed.' => 'डेटाबेस का नाम बदल दिया गया है।', + 'Database has been altered.' => 'डेटाबेस बदल दिया गया है।', + 'Alter database' => 'डेटाबेस बदलें', + 'Create database' => 'डेटाबेस बनाएं', + 'SQL command' => 'SQL कमांड', + 'Logout' => 'लॉगआउट', + 'Use' => 'उपयोग करें', + 'No tables.' => 'कोई टेबल नहीं।', + 'select' => 'चुनें', + 'Item has been deleted.' => 'आइटम हटा दिया गया है।', + 'Item has been updated.' => 'आइटम अपडेट किया गया है।', + 'Item%s has been inserted.' => 'आइटम%s डाला गया है।', + 'Edit' => 'संपादित करें', + 'Insert' => 'डालें', + 'Save and insert next' => 'सहेजें और अगला डालें', + 'Delete' => 'हटाएं', + 'Database' => 'डेटाबेस', + 'Routines' => 'रूटीन्स', + 'Indexes have been altered.' => 'इंडेक्स बदल दिए गए हैं।', + 'Indexes' => 'इंडेक्स', + 'Alter indexes' => 'इंडेक्स बदलें', + 'Add next' => 'अगला जोड़ें', + 'Language' => 'भाषा', + 'Select' => 'चुनें', + 'New item' => 'नया आइटम', + 'Search' => 'खोजें', + 'Sort' => 'क्रमबद्ध करें', + 'descending' => 'अवरोही', + 'Limit' => 'सीमा', + 'No rows.' => 'कोई पंक्ति नहीं।', + 'Action' => 'कार्रवाई', + 'edit' => 'संपादित करें', + 'Page' => 'पृष्ठ', + 'Query executed OK, %d row(s) affected.' => array('क्वेरी सफलतापूर्वक निष्पादित, %d पंक्ति प्रभावित।', 'क्वेरी सफलतापूर्वक निष्पादित, %d पंक्तियां प्रभावित।'), + 'Error in query' => 'क्वेरी में त्रुटि', + 'Execute' => 'निष्पादित करें', + 'Table' => 'टेबल', + 'Foreign keys' => 'फॉरेन की', + 'Triggers' => 'ट्रिगर्स', + 'View' => 'व्यू', + 'Unable to select the table' => 'टेबल चुनने में असमर्थ', + 'Invalid CSRF token. Send the form again.' => 'अमान्य CSRF टोकन। फॉर्म फिर से भेजें।', + 'Comment' => 'टिप्पणी', + 'Default values' => 'डिफ़ॉल्ट मान', + '%d byte(s)' => array('%d बाइट', '%d बाइट्स'), + 'No commands to execute.' => 'निष्पादित करने के लिए कोई कमांड नहीं।', + 'Unable to upload a file.' => 'फाइल अपलोड करने में असमर्थ।', + 'File upload' => 'फाइल अपलोड', + 'File uploads are disabled.' => 'फाइल अपलोड अक्षम हैं।', + 'Routine has been called, %d row(s) affected.' => array('रूटीन कॉल किया गया, %d पंक्ति प्रभावित।', 'रूटीन कॉल किया गया, %d पंक्तियां प्रभावित।'), + 'Call' => 'कॉल', + 'No extension' => 'कोई एक्सटेंशन नहीं', + 'None of the supported PHP extensions (%s) are available.' => 'कोई समर्थित PHP एक्सटेंशन (%s) उपलब्ध नहीं है।', + 'Session support must be enabled.' => 'सेशन सपोर्ट सक्षम होना चाहिए।', + 'Session expired, please login again.' => 'सेशन समाप्त, कृपया फिर से लॉगिन करें।', + 'Text length' => 'टेक्स्ट लंबाई', + 'Foreign key has been dropped.' => 'फॉरेन की हटा दी गई है।', + 'Foreign key has been altered.' => 'फॉरेन की बदल दी गई है।', + 'Foreign key has been created.' => 'फॉरेन की बनाई गई है।', + 'Foreign key' => 'फॉरेन की', + 'Target table' => 'लक्ष्य टेबल', + 'Change' => 'बदलें', + 'Source' => 'स्रोत', + 'Target' => 'लक्ष्य', + 'Add column' => 'कॉलम जोड़ें', + 'Alter' => 'बदलें', + 'Add foreign key' => 'फॉरेन की जोड़ें', + 'ON DELETE' => 'ऑन डिलीट', + 'ON UPDATE' => 'ऑन अपडेट', + 'Index Type' => 'इंडेक्स प्रकार', + 'length' => 'लंबाई', + 'View has been dropped.' => 'व्यू हटा दिया गया है।', + 'View has been altered.' => 'व्यू बदल दिया गया है।', + 'View has been created.' => 'व्यू बनाया गया है।', + 'Alter view' => 'व्यू बदलें', + 'Create view' => 'व्यू बनाएं', + 'Name' => 'नाम', + 'Process list' => 'प्रक्रिया सूची', + '%d process(es) have been killed.' => array('%d प्रक्रिया समाप्त की गई है।', '%d प्रक्रियाएं समाप्त की गई हैं।'), + 'Kill' => 'समाप्त करें', + 'Parameter name' => 'पैरामीटर नाम', + 'Database schema' => 'डेटाबेस स्कीमा', + 'Create procedure' => 'प्रक्रिया बनाएं', + 'Create function' => 'फंक्शन बनाएं', + 'Routine has been dropped.' => 'रूटीन हटा दिया गया है।', + 'Routine has been altered.' => 'रूटीन बदल दिया गया है।', + 'Routine has been created.' => 'रूटीन बनाया गया है।', + 'Alter function' => 'फंक्शन बदलें', + 'Alter procedure' => 'प्रक्रिया बदलें', + 'Return type' => 'वापसी प्रकार', + 'Add trigger' => 'ट्रिगर जोड़ें', + 'Trigger has been dropped.' => 'ट्रिगर हटा दिया गया है।', + 'Trigger has been altered.' => 'ट्रिगर बदल दिया गया है।', + 'Trigger has been created.' => 'ट्रिगर बनाया गया है।', + 'Alter trigger' => 'ट्रिगर बदलें', + 'Create trigger' => 'ट्रिगर बनाएं', + 'Time' => 'समय', + 'Event' => 'घटना', + '%s version: %s through PHP extension %s' => 'संस्करण %s: %s, PHP एक्सटेंशन %s के माध्यम से', + '%d row(s)' => array('%d पंक्ति', '%d पंक्तियां'), + 'Remove' => 'हटाएं', + 'Are you sure?' => 'क्या आप सुनिश्चित हैं?', + 'Privileges' => 'विशेषाधिकार', + 'Create user' => 'उपयोगकर्ता बनाएं', + 'User has been dropped.' => 'उपयोगकर्ता हटा दिया गया है।', + 'User has been altered.' => 'उपयोगकर्ता बदल दिया गया है।', + 'User has been created.' => 'उपयोगकर्ता बनाया गया है।', + 'Hashed' => 'हैश्ड', + 'Column' => 'कॉलम', + 'Routine' => 'रूटीन', + 'Grant' => 'अनुदान', + 'Revoke' => 'रद्द करें', + 'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'बहुत बड़ा POST डेटा। डेटा कम करें या %s कॉन्फ़िगरेशन निर्देश बढ़ाएं।', + 'Logged as: %s' => '%s के रूप में लॉगिन', + 'Move up' => 'ऊपर ले जाएं', + 'Move down' => 'नीचे ले जाएं', + 'Functions' => 'फंक्शन्स', + 'Aggregation' => 'एग्रीगेशन', + 'Export' => 'निर्यात', + 'Output' => 'आउटपुट', + 'open' => 'खोलें', + 'save' => 'सहेजें', + 'Format' => 'प्रारूप', + 'Tables' => 'टेबल्स', + 'Data' => 'डेटा', + 'Event has been dropped.' => 'घटना हटा दी गई है।', + 'Event has been altered.' => 'घटना बदल दी गई है।', + 'Event has been created.' => 'घटना बनाई गई है।', + 'Alter event' => 'घटना बदलें', + 'Create event' => 'घटना बनाएं', + 'At given time' => 'निर्धारित समय पर', + 'Every' => 'हर', + 'Events' => 'घटनाएं', + 'Schedule' => 'अनुसूची', + 'Start' => 'शुरू', + 'End' => 'समाप्त', + 'Status' => 'स्थिति', + 'On completion preserve' => 'पूरा होने पर संरक्षित करें', + 'Tables and views' => 'टेबल्स और व्यूज', + 'Data Length' => 'डेटा लंबाई', + 'Index Length' => 'इंडेक्स लंबाई', + 'Data Free' => 'डेटा मुक्त', + 'Collation' => 'कॉलेशन', + 'Analyze' => 'विश्लेषण', + 'Optimize' => 'अनुकूलित', + 'Check' => 'जांच', + 'Repair' => 'मरम्मत', + 'Truncate' => 'ट्रंकेट', + 'Tables have been truncated.' => 'टेबल्स ट्रंकेट कर दिए गए हैं।', + 'Rows' => 'पंक्तियां', + ',' => ',', + '0123456789' => '०१२३४५६७८९', + 'Tables have been moved.' => 'टेबल्स स्थानांतरित कर दिए गए हैं।', + 'Move to other database' => 'अन्य डेटाबेस में स्थानांतरित करें', + 'Move' => 'स्थानांतरित करें', + 'Engine' => 'इंजन', + 'Save and continue edit' => 'सहेजें और संपादन जारी रखें', + 'original' => 'मूल', + 'Tables have been dropped.' => 'टेबल्स हटा दिए गए हैं।', + '%d item(s) have been affected.' => '%d आइटम प्रभावित हुए हैं।', + 'Whole result' => 'पूरा परिणाम', + 'Clone' => 'क्लोन', + 'Maximum number of allowed fields exceeded. Please increase %s.' => 'अनुमत फील्ड्स की अधिकतम संख्या पार हो गई। कृपया %s बढ़ाएं।', + 'Partition by' => 'द्वारा विभाजन', + 'Partitions' => 'पार्टीशन्स', + 'Partition name' => 'पार्टीशन नाम', + 'Values' => 'मान', + '%d row(s) have been imported.' => array('%d पंक्ति आयात की गई है।', '%d पंक्तियां आयात की गई हैं।'), + 'anywhere' => 'कहीं भी', + 'Import' => 'आयात', + 'Stop on error' => 'त्रुटि पर रुकें', + '%.3f s' => '%.3f सेकंड', + '$1-$3-$5' => '$1-$3-$5', + '[yyyy]-mm-dd' => '[yyyy]-mm-dd', + 'History' => 'इतिहास', + 'Variables' => 'चर', + 'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'स्रोत और लक्ष्य कॉलम्स का डेटा प्रकार समान होना चाहिए, लक्ष्य कॉलम्स पर एक इंडेक्स होना चाहिए और संदर्भित डेटा मौजूद होना चाहिए।', + 'Relations' => 'संबंध', + 'Run file' => 'फाइल चलाएं', + 'Clear' => 'साफ़ करें', + 'Maximum allowed file size is %sB.' => 'अधिकतम अनुमत फाइल आकार %sB है।', + 'Numbers' => 'संख्याएं', + 'Date and time' => 'तिथि और समय', + 'Strings' => 'स्ट्रिंग्स', + 'Binary' => 'बाइनरी', + 'Lists' => 'सूचियां', + 'Editor' => 'संपादक', + 'Webserver file %s' => 'वेबसर्वर फाइल %s', + 'File does not exist.' => 'फाइल मौजूद नहीं है।', + '%d in total' => 'कुल %d', + 'Permanent login' => 'स्थायी लॉगिन', + 'Databases have been dropped.' => 'डेटाबेस हटा दिए गए हैं।', + 'Search data in tables' => 'टेबल्स में डेटा खोजें', + 'Schema' => 'स्कीमा', + 'Alter schema' => 'स्कीमा बदलें', + 'Create schema' => 'स्कीमा बनाएं', + 'Schema has been dropped.' => 'स्कीमा हटा दी गई है।', + 'Schema has been created.' => 'स्कीमा बनाई गई है।', + 'Schema has been altered.' => 'स्कीमा बदल दी गई है।', + 'Sequences' => 'अनुक्रम', + 'Create sequence' => 'अनुक्रम बनाएं', + 'Alter sequence' => 'अनुक्रम बदलें', + 'Sequence has been dropped.' => 'अनुक्रम हटा दिया गया है।', + 'Sequence has been created.' => 'अनुक्रम बनाया गया है।', + 'Sequence has been altered.' => 'अनुक्रम बदल दिया गया है।', + 'User types' => 'उपयोगकर्ता प्रकार', + 'Create type' => 'प्रकार बनाएं', + 'Alter type' => 'प्रकार बदलें', + 'Type has been dropped.' => 'प्रकार हटा दिया गया है।', + 'Type has been created.' => 'प्रकार बनाया गया है।', + 'Use edit link to modify this value.' => 'इस मान को संशोधित करने के लिए संपादन लिंक का उपयोग करें।', + 'last' => 'अंतिम', + 'From server' => 'सर्वर से', + 'System' => 'सिस्टम', + 'Select data' => 'डेटा चुनें', + 'Show structure' => 'संरचना दिखाएं', + 'empty' => 'खाली', + 'Network' => 'नेटवर्क', + 'Geometry' => 'ज्यामिति', + 'File exists.' => 'फाइल मौजूद है।', + '%d query(s) executed OK.' => array('%d क्वेरी सफलतापूर्वक निष्पादित।', '%d क्वेरीज़ सफलतापूर्वक निष्पादित।'), + 'Show only errors' => 'केवल त्रुटियां दिखाएं', + 'Refresh' => 'ताज़ा करें', + 'Invalid schema.' => 'अमान्य स्कीमा।', + 'Please use one of the extensions %s.' => 'कृपया %s एक्सटेंशन्स में से एक का उपयोग करें।', + 'now' => 'अब', + 'ltr' => 'ltr', + 'Tables have been copied.' => 'टेबल्स कॉपी कर दिए गए हैं।', + 'Copy' => 'कॉपी', + 'Permanent link' => 'स्थायी लिंक', + 'Edit all' => 'सभी संपादित करें', + 'HH:MM:SS' => 'HH:MM:SS', +); + +// run `php ../../lang.php hi` to update this file diff --git a/lang.php b/lang.php index f77fa4d9..844d5abc 100755 --- a/lang.php +++ b/lang.php @@ -53,7 +53,7 @@ function update_translations($lang, $messages, $filename, $pattern, $tabs = "\t" $start = $match[2][1]; preg_match_all("~^(\\s*(?:// [^'].*\\s+)?)(?:// )?(('(?:[^\\\\']+|\\\\.)*') => (.*[^,\n])),?~m", $match[2][0], $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); $s = ""; - $fullstop = ($lang == "bn" ? '।' : (preg_match('~^(ja|zh)~', $lang) ? '。' : ($lang == 'he' ? '[^.]' : '\.'))); + $fullstop = ($lang == 'bn' || $lang == 'hi' ? '।' : (preg_match('~^(ja|zh)~', $lang) ? '。' : ($lang == 'he' ? '[^.]' : '\.'))); foreach ($matches as $match) { list(, list($indent), list($line, $offset), list($en), list($translation)) = $match; if (isset($messages[$en])) {