سؤال

لدي تطبيق PHP يستخدم Javascript على نطاق واسع من جانب العميل.لدي نظام بسيط من ناحية PHP لتزويد المترجمين بطريقة سهلة لتقديم لغات جديدة.ولكن هناك حالات تحتاج فيها جافا سكريبت إلى عرض عناصر اللغة للمستخدم (ربما زر موافق أو إلغاء أو "تحميل" أو شيء من هذا القبيل).

مع PHP، لدي فقط ملف نصي تم تخزينه مؤقتًا على جانب الخادم والذي يحتوي على رموز العبارات على جانب واحد وترجمتها على الجانب الآخر.يحتاج المترجم فقط إلى استبدال اللغة الإنجليزية بلغته الخاصة وإرسال النسخة المترجمة لي والتي أقوم بدمجها في التطبيق.

أريد شيئا مماثلا من جانب العميل.لقد خطر لي أن يحتوي جافا سكريبت على مجموعة من الثوابت المترجمة ولكن بعد ذلك يؤدي كل تحميل للصفحة إلى تنزيل ملف كبير محتمل معظمه غير ضروري.

هل كان على أي شخص التعامل مع هذا؟إذا كان الأمر كذلك، ما هو الحل الخاص بك؟

يحرر:لكي أكون واضحًا، أنا لا أشير إلى الترجمات "السريعة" هنا.لقد تم بالفعل إعداد الترجمات وهي جاهزة للتنفيذ، وأريد فقط إتاحتها للعميل بطريقة فعالة.

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

المحلول

وماذا عن تغذية جافا سكريبت من فب؟ وذلك بدلا من الرفع:

  <script type='text/javascript' src='jsscript.js'></script>

هل

 <script type='text/javascript' src='jsscript.php'></script>

وبعد ذلك في ملف بى استبدال كافة النص أنتج مع الثوابت المرتبطة بها.

ومما لا شك فيه لإخراج رؤوس التخزين المؤقت الصحيحة من ضمن التعليمات البرمجية PHP.

تعديل

وهذه هي الرؤوس التي يمكنني استخدام:

header('Content-type: text/javascript');
header('Cache-Control: public');
header('expires: '. date("r", time() + ( 7 * 24 * 60 * 60 ) ) ); // 1 week
header("Pragma: public");

نصائح أخرى

وأنا عادة تحميل القيم اللغة المناسبة ككائن جافا سكريبت في ملف منفصل بقية قانون بلدي يمكن الرجوع:

var messages = {
    "loading": "Chargement"
}

alert(messages.loading);

وسوف يكون مؤقتا مكتبة اللغة على جانب العميل بعد الحمل الأول، والتي يمكن أن تحسن كفاءة حمولة من القيم تنقسم الى ملفات منفصلة التي يتم تحميلها على أساس السياق: على سبيل المثال مكتبة صغيرة للعمليات العامة، وهو واحد إضافي وراء تسجيل الدخول، وما إلى ذلك.

ما كنت تبحث عن ويبدو أن AJAX (العميل والخادم تبادل طلبات asyncronous باستخدام جافا سكريبت).

إذا كنت تبحث عن شيء جاهز، واتخاذ الذروة في جوجل ترجمة واجهات برمجة التطبيقات AJAX .

ولم يكن لدي شخصيا للقيام بذلك، ولكن الأول تخميني أن يكون مرجع مكتبة طرف ثالث. وأعتقد أن API جوجل AJAX قد يكون مجرد أداة لتحقيق ذلك، وبما أن المكتبة من خلال جوجل، لن يتم تحميل ملف جافا سكريبت من موقعك.

وحاول حفر من خلال الموقع التالي قليلا: http://code.google. كوم / واجهات برمجة التطبيقات / ajaxlanguage / وثائق /

واسمحوا لي أن أعرف إذا كان ذلك يساعد على الخروج. أنا قد تكون مهتمة في تنفيذ شيئا من هذا القبيل لموقع أديرها.

وحظا سعيدا، C

تعجبني إجابة بيم جاغر، وقد فعلت ذلك بنفسي.إذا كنت لا تريد أن تقوم PHP بإنشاء JavaScript لك (على سبيل المثال، لأسباب تتعلق بالأداء)، فيمكنك الحصول على نسخة رئيسية من JavaScript libs، وعندما تتغير، قم بتشغيل برنامج ترجمة لإنشاء نسخة من كل lib لكل لغة.ثم اطلب من PHP وضع الإصدار الصحيح للمستخدم الحالي في علامة البرنامج النصي التي يرسلها.

لقد عملت على نظام يحتاج إلى توطين مكثف وعلامات تجارية ثقيلة لعملاء مختلفين.ما فعلناه هو أن أي شيء يتم إرساله إلى الشاشة يحتوي على ماكرو فريد، مثل [3027] (أو شيء من هذا القبيل).ثم كان لدينا مجموعة من الملفات المحلية وملفات العلامات التجارية التي تحتوي على إدخالات لكل كود ماكرو، والنص الذي سيحل محل كل ماكرو.سيقوم البرنامج بالتكرار عبر جميع الملفات المصدر وجميع اللغات وإجراء البدائل.

لقد وجدنا أننا بحاجة أيضًا إلى بعض الوظائف للتوطين، والمبالغ المالية، والتواريخ، والأوقات، وما إلى ذلك.كل شيء يعمل بشكل جيد.

وجدنا أننا بحاجة إلى شيء آخر مهم:أداة لتصفح جميع ملفات اللغة والتأكد من أنها تحتوي على جميع الرموز اللازمة.توفير كبير للوقت.

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