سؤال

قراءة حول قوالب كوهانا ورأى شيئا لم أره من قبل:

$this->template->title = __('Welcome To Acme Widgets');

ماذا فعلت __('Text') يعني؟ ما هذا؟ ماذا تعمل، أو ماذا تفعل؟

هل كانت مفيدة؟

المحلول

في كوهانا (الإصدار 3) يتم تعريف الوظيفة في النظام / base.php. وهي وظيفة الراحة للمساعدة (كما ذكرت الإجابات الأخرى) التدويل. يمكنك تقديم سلسلة (مع، اختياريا، بعض العناصر النائبة إلى القيم البديلة في النص النهائي) ثم تفسير ثم تفسيرها، وإذا لزم الأمر، يتم إرجاع الترجمة.

على عكس الافتراضات في إجابات أخرى، هذا لا يستخدم الحصول على النص.

سيكون مثال أساسي للغاية (ترجمت هذه السلسلة المعينة بالفعل إلى الإنجليزية والإسبانية والفرنسية في كوهانا):

// 1. In your bootstrap.php somewhere below the Kohana::init line
I18n::lang('fr');

// 2. In a view
echo __("Hello, world!"); // Bonjour, monde!

نصائح أخرى

يتم استخدام "__" مزدوج للتوطين في CakePhp (والأطر الأخرى المحتملة)

http://book.cakephp.org/view/163/localization-in-cakephp.

إنه string gettext ( string $message ): http://php.net/manual/en/function.gettext.php.

إرجاع سلسلة مترجمة إذا تم العثور على أحد في جدول الترجمة، أو الرسالة المقدمة إذا لم يتم العثور عليها.

__ () هو مجرد اسم مستعار لذلك. وبالتالي __("some text") أي ما يعادل gettext("some text")

تعديل: في الواقع إذا كان الأمر اثنان من السفلات أكثر مما لم يكن كتابي (). الاسم المستعار ل Gettext () هو واحد تحت السيفية.

تحرير الثاني: يبدو أن __ () قد يكون اسم مستعار آخر ل Gettext (). مع معنى مختلف قليلا من _ (). انظر هنا: http://groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d؟pli=1.

تحرير الثالث والنهائي: إليك مقال يشرحه بمزيد من التفصيل. يبدو أنه ليس وظيفة مبنية، بل شيء يضاف عادة في الكثير من الأطر. إنه في الأساس أساسا من Gettext - إنه ينفذ نفس الوظيفة. ومع ذلك، فإنه ليس اسم مستعار مباشر (لا أعتقد). يتم تنفيذها وهي محددة للإطار. يبحث عن وإرجاع توطين أو ترجمة السلسلة التي يتم تقديمها. لمزيد من، راجع هذا بلوق وظيفة: http://www.eatmybusiness.com/food/2007/04/13/What-On-arth-Does-a-Double-undersCore-Then-Parenthes-mean-in-php-__/7/

// Display a translated message
echo __('Hello, world');

// With parameter replacement
echo __('Hello, :user', array(':user' => $username));

يرى http://kohanaframework.org/3.2/guide/api/i18n. للتفاصيل.

وهذا يعني أن شخصا ما أنشأ وظيفة يدعى __ (هذا اثنين من السفلات بجانب بعضها البعض.)

تخميني هو محدد في مكان ما في وثائق كوهانا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top