मैं अपने वाईआई 2 एप्लिकेशन में कीवर्ड के आधार पर एक अनुवाद का उपयोग कर रहा हूं (मुझे पता है कि यह सबसे अच्छा विकल्प नहीं है, लेकिन मेरे पास अन्य नहीं है)। मैं कीवर्ड का उपयोग कर अनुवाद तार के साथ @app/messages/pl/app.php
और @app/messages/en/app.php
फ़ाइलें तैयार किया है, बजाय पूर्ण विशेषताओं वाक्य या शब्द की:स्रोत में अनुवाद भाषाई Yii2 एप्लिकेशन में काम नहीं करता
<?php
return [
'name_english'=>'Name in English',
'keywords_english'=>'Keywords in English'
];
?>
मैं डिफ़ॉल्ट के रूप में पोलिश भाषा का उपयोग करने के अपने आवेदन निर्धारित किया है:
'language' => 'pl',
'sourceLanguage' => 'en',
,
Yii::t('app', 'keywords_english');
सब कुछ ठीक काम करता है जब भाषा है:
और मैं अनुवाद लागू कर रहा हूँ ,
लेकिन जब मैं अंग्रेजी (en
के लिए इसे बदल;: वास्तव में आधार के लिए निर्धारित करते हैं, पोलिश (pl
) या तो रनटाइम के दौरान या बदलने के आवेदन विन्यास) द्वारा Yii::$app->language
की स्थापना करके, अनुवाद नहीं किया जाता है और मैं keywords_english
हो रही है:
मैं @app/messages/pl/app.php
और @app/messages/en/app.php
फ़ाइलों की शुरुआत में die()
डाल दिया है और मैं स्पष्ट रूप से देख सकते हैं , जब भाषा अंग्रेजी पर सेट की जाती है, दूसरी फ़ाइल Yii2 (एप्लिकेशन रन निम्नानुसार) द्वारा शामिल नहीं की जा रही है, जबकि, जब भाषा पोलिश है, तो पहली फ़ाइल शामिल है और die()
पर एप्लिकेशन प्रवाह ब्रेक शामिल है।
मुझे क्या याद आ रही है? क्यों Yii2 @app/messages/en/app.php
फ़ाइल से अनुवाद का उपयोग नहीं कर रहा है, यदि भाषा अंग्रेज़ी (en
) पर सेट है?
संपादित करें: डिफ़ॉल्ट रूप से, मैं अपने अनुप्रयोग की कॉन्फ़िगरेशन में डिफ़ॉल्ट i18n
घटक कॉन्फ़िगरेशन को परिवर्तित नहीं कर रहा था क्योंकि मुझे इसकी आवश्यकता नहीं थी। अनुवाद फ़ाइलों को डिफ़ॉल्ट स्थिति में संग्रहीत किया जाता है (@app/messages/<language>/
) और डिफ़ॉल्ट वर्ग (yii\i18n\PhpMessageSource
) का उपयोग कर रहे हैं। और यह sourceLanguage
को छोड़कर सभी भाषाओं के लिए काम कर रहा है।
'i18n' => [
'translations' => [
'*' => [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en',
'basePath' => '@app/messages'
],
],
],
लेकिन, यह कोई परिवर्तन नहीं लाया (- यह अभी भी डिफ़ॉल्ट सेटिंग्स का उपयोग करता है क्यों यह होना चाहिए): कुछ बिंदु पर, मैं विन्यास को बदलने की कोशिश की।
कॉन्फ़िगर –
से 'i18n' दिखाएं अद्यतन प्रश्न देखें। मैं किसी भी तरह से 'i18n' को कॉन्फ़िगर नहीं कर रहा हूं। मैं क्यों? मैं डिफ़ॉल्ट सेटिंग्स का उपयोग करना चाहता हूं और यह 'एन' के लिए काम करना चाहिए, अगर यह 'pl' के लिए काम करता है, है ना? – trejder
कि प्रयास करें: ' 'अनुवाद' => [ 'ऐप्लिकेशन *' => [ 'क्लास' => 'Yii \ i18n \ PhpMessageSource', 'basePath' => '@ एप्लिकेशन/संदेश', 'sourceLanguage' => 'en_US', 'fileMap' => [ 'ऐप' => 'app.php', ], ], –