2012-04-06 12 views
5

मैं कई भाषाओं में टेक्स्ट प्रदर्शित करने के लिए अपने विचारों के अंदर <?php echo __("this is my string"); ?> का उपयोग करता हूं। मैं के लिए जर्मन एक पुलिस फाइल निर्देशिका बनाया:केकपीएचपी 2.1 .po फाइलें/अनुवाद काम नहीं कर रहा

=> एप्लिकेशन/लोकेल/जर/LC_MESSAGES/default.po

msgstr "यह मेरी स्ट्रिंग"

क 'IST मीन मर जाता है zeichenkette "

जब मैं अपने AppController.php beforeFilter को Configure::write('Config.language','ger'); जोड़ने पाठ में कार्य अभी भी बना हुआ" यह मेरा स्ट्रिंग "है। यहां तक ​​कि यदि मैं एक अलग संदेश के साथ अंग्रेजी के लिए .po बना देता हूं, तो पाठ अभी भी वही रहता है।

क्या मुझे अनुवाद को सक्रिय करने के लिए एक विशिष्ट सेटिंग बदलनी है?


मैं एक अनुवर्ती समस्या है: मैं core.php को Configure::write('Config.language','eng'); जोड़ा मेरा डिफ़ॉल्ट भाषा सेट करने लेकिन अब मैं मूल्य नहीं बदल सकते हैं, भले ही मैं AppController.php ओवरराइड करने की कोशिश beforeFilter साथ:

Configure::write('Config.language', 'deu'); //'de' also doesn't work 
CakeSession::write('Config.language', 'deu'); //'de' also doesn't work 

मैं core.php में यह पूरी तरह ठीक काम करता है लेकिन core.php में एक बार सेट मूल्य बदलते हैं तो मैं इसे बदल नहीं कर सकते।

हल: आह, मैं सभी नियंत्रकों के पहलेफिल्टर फ़ंक्शन के अंदर parent::beforeFilter(); जोड़ना भूल गया।


अतिरिक्त जानकारी:

  • आप एक डिफ़ॉल्ट भाषा को परिभाषित करना चाहते हैं (और आप आमतौर पर होगा), Configure::write('Config.language', 'eng');core.php

उत्तर

8

आप फ़ाइल lib/केक/I18n/L10n.php देख सकते हैं पता करने के लिए कि प्रत्येक भाषा कॉल करने के लिए। जर्मन के लिए

सेटिंग्स:

Configure::write('Config.language','de'); 

=> एप्लिकेशन/लोकेल/deu/LC_MESSAGES/default.po

+0

पर डाल सकें L10n.php फ़ाइल के संकेत के लिए धन्यवाद, मैं करूंगा भविष्य के संदर्भों के लिए इसका इस्तेमाल करें। –

+0

धन्यवाद, केकपीएचपी के मूल को देखो, मुझे समझने में मदद करता है। –

6

को जोड़ देते हैं तो अपने ' डीयू "नहीं" जीर "

केकपीएचपी आधिकारिक (टी) सी का उपयोग करता है http://www.loc.gov/standards/iso639-2/php/code_list.php से odes, CakePHP 1.3 के लिए यह Internationalizing Your Application के तहत दर्ज है:

तीन अक्षर स्थान कोड, ISO 639-2 मानक के अनुरूप हालांकि अगर आप क्षेत्रीय स्थानों (en_us, en_GB, आदि) बनाने के केक उन्हें यदि का उपयोग करेगा उचित।

ISO 639-2 | ISO 639-1 | English name | French name | German name | 
Code  | Code  | of Language | of Language | of Language | 
------------------------------------------------------------------- 
ger (B) |   |    |    |    | 
deu (T) | de  | German  | allemand | Deutsch  | 
+1

आह, अब यह काम करता है।मुझे यह स्पष्ट नहीं था कि मुझे फ़ाइल से "टी" मान का उपयोग करना है, यह बहुत बुरा है कि दस्तावेज़ीकरण में इसका उल्लेख नहीं किया गया है क्योंकि मुझे लगता है कि कई अन्य केकेपीएचपी उपयोगकर्ता इसे नहीं जानते हैं। –

+0

आपके उत्तर के लिए धन्यवाद! मैं केवल सही उत्तर के रूप में चिह्नित कर सकता हूं, मैंने l10n फ़ाइल के संदर्भ के कारण del_dan को लिया है। –

+1

कोई समस्या नहीं है। दस्तावेज़ीकरण के लिए: आप github rep को दबाकर भाग ले सकते हैं: https://github.com/cakephp/docs - ताकि आप लापता जानकारी को – mark

संबंधित मुद्दे