| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <sect1 id="performance.localization">
- <title>גלובאליזציה (i18n) ותמיכה בשפות שונות (l10n)</title>
- <para>
- גלובאליזציה ותמיכה בשפות שונות הינם גורם הכרחי כדי לפנות לקהל יעד רחב יותר, ולוודא שכל המשתמשים מקבלים את המידע שהם צריכים.
- למרות זאת, זה בדרך כלל מגיע עם בעיות משמעותיות בביצועי המערכת. להלן כמה דרכים שניתן למנוע את בעיות הביצועים שנגרמים עקב שימוש בגלובאליזציה ותמיכה בשפות שונות בעת פיתוח המערכת.
- </para>
- <sect2 id="performance.localization.translationadapter">
- <title>באיזו מתאם תרגום כדי לי להשתמש?</title>
- <para>
- לא כל מתאמי התרגום הם שווים. לחלקם יש יותר אפשרויות מאחרים, וחלקם עובדים טוב יותר מאחרים.
- בנוסף, יתכן ומסיבות פיתוח שלכם תדרשו להשתמש במתאם תרגום מסויים. למרות שאם יש לכם את אפשרות הבחירה, איזה מתאם הוא המהיר ביותר?
- </para>
- <sect3 id="performance.localization.translationadapter.fastest">
- <title>השתמשו במתאם תרגום ללא שימוש ב XML למיטב הביצועים והמהירות</title>
- <para>
- Zend Framework מגיע עם מגוון מתאמי תרגום שונים לשימוש.
- לפחות כמחצית מהם משתמשים בפורמט XML, אשר דורשים הרבה זכרון ומציגים ביצועים פחות טובים מאחרים.
- למרבה המזל ישנם מתאמים אחרים אשר משתמשים בפורמטים אשר נטענים הרבה יותר מהר. מבחינת מהירות, מהמהיר ביותר אל האיטי ביותר, הינם:
- </para>
- <itemizedlist>
- <listitem><para>
- <emphasis>Array</emphasis>: זהו המהיר ביותר, מאחר והוא נטען ישירות ל PHP ברגע שהקובץ נוסף.
- </para></listitem>
- <listitem><para>
- <emphasis>CSV</emphasis>: שימוש ב <code>fgetcsv()</code> כדי לטעון את קובץ ה CSV ולהפוך אותו למערך PHP רגיל.
- </para></listitem>
- <listitem><para>
- <emphasis>INI</emphasis>: שימוש ב
- <code>parse_ini_file()</code> כדי לטעון ולעבד קובץ INI ולהפוך אותו לקובץ בפורמט PHP רגיל.
- אפשרות זו וה CSV הם בערך זהים מבחינת מהירות וביצועים.
- </para></listitem>
- <listitem><para>
- <emphasis>Gettext</emphasis>: המתאם של Zend Framework בשימוש עם gettext <emphasis>לא</emphasis> משתמש בתוסף ה gettext הנפוץ,
- מאחר והוא לא בטוח ולא מאפשר הגדרה של יותר משפה אחת פר שרת. כתוצאה מכך הוא איטי יותר משימוש בתוסף ישירות, אבל מאחר ה gettext משתמש בקבצים בפורמט בינארי, הוא מהיר יותר
- מעיבוד קובץ XML.
- </para></listitem>
- </itemizedlist>
- <para>
- אם הנכם דואגים לביצועי המערכת שלכם, אנו ממליצים שימוש באחד מהמתאמים המצויינים מעלה.
- </para>
- </sect3>
- </sect2>
- <sect2 id="performance.localization.cache">
- <title>כיצד ניתן להאיץ את התרגום והמתאמים אף יותר?</title>
- <para>
- אולי, מסיבות עסקיות, הנכם מוגבלים לשימוש במתאם תרגום לקבצי XML.
- או שאולי תרצו להאיץ את הדברים אף יותר. איך תוכלו לעשות זאת?
- </para>
- <sect3 id="performance.localization.cache.usage">
- <title>שימוש במטמון</title>
- <para>
- גם <code>Zend_Translate</code> ו <code>Zend_Locale</code> מאפשרים שימוש במטמון אשר מאיצים ומשפרים את הביצועים בצורה משמעותית.
- בשני המקרים, הבעיה הגדולה ביותר והבעיה שיוצרת את צוואר הבקבוק היא בדרך כלל קריאה ועיבוד הקבצים, לא הצגת הנתונים; שימוש במטמון מסיר את הדרישה של טעינה ועיבוד של קבצי השפה בכל פעם.
- </para>
- <para>
- ניתן לקרוא אודות שימוש במטמון עם קבצי התרגום השונים בקישורים הבאים:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <link linkend="zend.translate.adapter.caching"><code>Zend_Translate</code>
- מתאם מטמון</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link linkend="zend.locale.cache"><code>Zend_Locale</code>
- מטמון</link>
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|