PHP अनुवाद और वेबसाइट अंतर्राष्ट्रीयकरण मार्गदर्शिका

more

Yee

Aug 03, 2024

cover-img

अपने PHP वेबसाइट को वैश्विक बनाएं: एक अधिक कुशल अंतर्राष्ट्रीयकरण समाधान

यदि आप भी मेरी तरह कुछ ऐसे 'मूल' PHP प्रोजेक्ट्स का रखरखाव करते हैं, जो बड़े फ्रेमवर्क (जैसे Laravel या Symfony) पर निर्भर नहीं हैं, तो बहुभाषी समर्थन (i18n) शायद हमेशा से एक छोटी या बड़ी समस्या रहा है।

पारंपरिक समाधान, जैसे कि gettext, भले ही शक्तिशाली हों, लेकिन इन्हें कॉन्फ़िगर करना काफी जटिल है, खासकर छोटे प्रोजेक्ट्स में, जिससे ऐसा लगता है जैसे छोटी समस्या के लिए बहुत बड़ा उपाय किया जा रहा हो।हमें वास्तव में जिस चीज़ की आवश्यकता है, वह एक ऐसी विधि है जो जल्दी से कार्यान्वित हो सके और अधिक जटिलता भी न लाए।

कई परियोजनाओं के अनुभव के बाद, हमने PHP ऐरे फ़ाइलों और ऑनलाइन अनुवाद उपकरणों पर आधारित एक हल्का-फुल्का अंतर्राष्ट्रीयकरण समाधान विकसित किया है। यह समाधान न केवल लागू करने में आसान है, बल्कि इसका रखरखाव भी अत्यंत कम लागत वाला है। आज मैं यह समाधान आपके साथ पूरी तरह से साझा कर रहा हूँ।

व्यावहारिक अभ्यास: मैंने O.Translator का उपयोग करके PHP में बहुभाषीकरण कैसे किया

हमारी मुख्य सोच बहुत सीधी है: हर भाषा के लिए एक PHP फ़ाइल, जिसमें एक संबद्ध ऐरे लौटाने वाला return कथन होता है। यह तरीका सरल, स्पष्ट और प्रदर्शन पर बहुत कम प्रभाव डालता है।

पहला कदम: अपनी निर्देशिका संरचना की योजना बनाएं

एक स्पष्ट निर्देशिका संरचना सफलता का आधा हिस्सा है।प्रबंधन को सुविधाजनक बनाने के लिए, हमने सभी भाषा फ़ाइलों को एक ही स्थान पर रखा है और भाषा कोड के अनुसार नामित किया है, जैसे कि:

project_root/
├── index.php         // 你的主逻辑文件
├── i18n/             // 存放所有语言文件的文件夹
│   ├── lang.cn.php   // 中文语言包
│   ├── lang.en.php   // 英文语言包
│   └── lang.fr.php   // 法文语言包

दूसरा चरण: अपनी 'भाषा शस्त्रागार' बनाएं

अब हम मूल भाषा फ़ाइलें बनाएंगे।यहाँ चीनी को उदाहरण के रूप में लेते हुए, एक lang.cn.php फ़ाइल बनाएं।फ़ाइल की सामग्री एक साधारण PHP ऐरे है, जिसमें कुंजी (key) एक अद्वितीय पहचानकर्ता होती है और मान (value) संबंधित पाठ होता है।

lang.cn.php उदाहरण: कुंजी नाम समान रखें, मान भाषा के अनुसार बदलें

तीसरा चरण: प्रस्तुत है अनुवाद जादूगर O.Translator

दर्जनों या सैकड़ों प्रविष्टियों का मैन्युअल अनुवाद? यह निश्चित रूप से वह दोहराव वाला कार्य है जिसे प्रोग्रामर सबसे कम करना चाहते हैं।अब समय है कि हमारा गुप्त हथियार——O.Translator मंच पर आए।

यह एक पेशेवर ऑनलाइन दस्तावेज़ अनुवाद प्लेटफ़ॉर्म है, जो PHP फ़ाइलों का पूरी तरह समर्थन करता है, आपकी ऐरे को सीधे पढ़ सकता है और 70 से अधिक भाषाओं में अनुवाद कर सकता है।

इसकी प्रक्रिया इतनी आसान है कि हैरान कर दे:

  1. O.Translator होमपेज पर जाएं और अपनी मूल भाषा फ़ाइल (जैसे lang.cn.php) अपलोड करें।
  2. वह लक्ष्य भाषा चुनें जिसे आप अनुवाद करना चाहते हैं, जैसे अंग्रेज़ी या फ़्रेंच।
  3. अनुवाद पर क्लिक करें, कुछ क्षण प्रतीक्षा करें, और अनुवादित lang.en.php तथा lang.fr.php फ़ाइलें आपके लिए तैयार हो जाएंगी।

जिस बात ने मुझे सबसे अधिक प्रभावित किया, वह यह है कि O.Translator आपको पहले मुफ़्त में पूर्वावलोकन करने की अनुमति देता है। यदि परिणाम संतोषजनक हो, तभी आप पूरी सामग्री के लिए भुगतान करने का निर्णय ले सकते हैं। उनके शब्दों में: “असंतुष्ट उत्पाद के लिए कभी भुगतान न करें।”

चौथा चरण: कोड को 'जीवित' बनाएं

सब कुछ तैयार है, बस अंतिम कदम बाकी है।अब हम मुख्य फ़ाइल index.php को संशोधित करेंगे, ताकि वह उपयोगकर्ता की पसंद के अनुसार संबंधित भाषा पैकेज को गतिशील रूप से लोड कर सके।

<?php

// 1. 决定当前语言 (这里用GET参数做演示)
$supported_langs = ['en', 'cn', 'fr'];
$default_lang = 'en';
$lang = isset($_GET['lang']) && in_array($_GET['lang'], $supported_langs) ? $_GET['lang'] : $default_lang;

// 2. 加载对应的语言文件
// 使用 $_ 全局变量或 $TEXTS 这样的特定变量来存储文案
$_ = require_once __DIR__ . "/i18n/lang.{$lang}.php";

?>

अपने HTML टेम्पलेट में, आप नीचे दिए गए तरीके से आसानी से टेक्स्ट को कॉल कर सकते हैं:

<!DOCTYPE html>
<html lang="<?php echo htmlspecialchars($lang); ?>">
<head>
    <meta charset="UTF-8">
    <title><?php echo htmlspecialchars($_['heading_home']); ?></title>
</head>
<body>
    <header>
      <h1><?php echo htmlspecialchars($_['heading_home']); ?></h1>
      <nav>
        <ul>
          <li><?php echo htmlspecialchars($_['heading_about']); ?></li>
          <li><?php echo htmlspecialchars($_['button_read_more']); ?></li>
        </ul>
      </nav>
    </header>
</body>
</html>

देखिए, एक साधारण बहुभाषी वेबसाइट इसी तरह बनती है!

सावधानियां और उन्नत विचार

यह समाधान हल्का है, लेकिन उत्पादन में डालने से पहले कुछ बातें हैं जिन पर आपको विचार करना चाहिए:

  • उपयोगकर्ता की भाषा कैसे प्राप्त करें? लेख में ?lang=en जैसे GET पैरामीटर का प्रदर्शन किया गया है, लेकिन वास्तविक अनुप्रयोग में आप $_SESSION, $_COOKIE या ब्राउज़र के Accept-Language अनुरोध हेडर को पार्स करके भी स्वचालित रूप से पता लगा सकते हैं।
  • प्रदर्शन विचार: छोटे और मध्यम आकार की वेबसाइटों के लिए, प्रत्येक अनुरोध पर एक PHP फ़ाइल को require_once करना प्रदर्शन पर नगण्य प्रभाव डालता है।यदि आपकी वेबसाइट पर बहुत अधिक ट्रैफ़िक है, तो आप APC, OPcache जैसी बाइटकोड कैशिंग तकनीकों का उपयोग करके और अधिक अनुकूलन पर विचार कर सकते हैं।
  • विस्तारशीलता: जब भाषाओं की संख्या या सामग्री की मात्रा अत्यधिक बढ़ जाती है, तो फ़ाइलों का मैन्युअल प्रबंधन जटिल हो जाता है।ऐसी स्थिति में, आपको अधिक पेशेवर अंतर्राष्ट्रीयकरण समाधान तलाशने की आवश्यकता हो सकती है, जैसे PHP का gettext एक्सटेंशन या फ्रेमवर्क में अंतर्निहित स्थानीयकरण घटक।
  • अनुवाद की एकरूपता: सभी भाषाओं के संस्करणों में ब्रांड नाम और शब्दावली की एकरूपता सुनिश्चित करने के लिए, O.Translator की शब्दावली सुविधा का उपयोग करने की दृढ़ता से अनुशंसा की जाती है।
  • समग्र रणनीति: यह लेख तकनीकी कार्यान्वयन पर केंद्रित है।यदि आप वेबसाइट अंतर्राष्ट्रीयकरण की समग्र रणनीति के बारे में और अधिक जानना चाहते हैं, तो आप हमारा एक अन्य विस्तृत लेख पढ़ सकते हैं।

विषय

परिदृश्य

परिदृश्य

प्रकाशित लेख11

अनुशंसित पठन