كيفية إنشاء ملف لغة للنص في ملفات جافا سكريبت؟

StackOverflow https://stackoverflow.com/questions/1628407

  •  06-07-2019
  •  | 
  •  

سؤال

يستخدم تطبيق الويب الخاص بي مجموعة كبيرة من جافا سكريبت، وفي جافا سكريبت لدي رسائل أقوم بإبلاغ المستخدم بها.

ما هي أفضل طريقة لاستخراج النص من جافا سكريبت الخاص بي وتخزينه خارجيًا في ملف لغة .js آخر، وكيف يمكنني الرجوع إليه في كود js الخاص بي من الآن فصاعدًا؟

أي أفضل الممارسات لهذا؟

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

المحلول

وإنشاء كائن الحرفي:

var messages = {
    welcome: "Welcome",
    goodbye: "Goodbye",
    error: "Something bad happend. Sowwy!"
};

والتي يمكنك الرجوع ثم، كما يلي:

if (error) alert(messages.error);

و
هذه يعمل بشكل ممتاز إذا كنت ترغب في تنفيذ عدة لغات. ما أفعل عادة هو تضمين ملف من جانب الخادم الذي يجعل خارجا "رسائل" وجوه وفقا لأي لغة تم تحديده في تكوين التطبيق أو وفقا لUI الثقافة (في حالة ASP.NET).

وهنا هو كيف سيكون استخدامها، في السطر:

<head>
    <!-- messages.aspx renders out the object literal -->
    <script type="text/javascript" src="messages.aspx"></script>

    <script type="text/javascript">

        /* when messages.aspx is included it provides you with an object literal
           as a global variable. The example below would alert "Something bad
           happend. Sowwy!" */

        if (error) alert(messages.error);

    </script>
</head>

و
الشيء أنيق حول استخدام كائن الحرفي، غير أن الرمز هو أكثر مطول. بدلا من استخدام صفيف، مثل هذا: alert(messages[0]) القيام بذلك: alert(messages.error) وهو أكثر قليلا التفسيرية

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


في جافا سكريبت يمكنك تعديل الكائنات في وقت التشغيل. حتى إذا كنت ترغب في إضافة المزيد من الرسائل إلى الكائن، في وقت لاحق في التعليمات البرمجية، وكنت مجرد قيام بذلك:

messages.newMessageAddedLaterOnInTheCode = "This is a new message";

نصائح أخرى

وأرى وقال آخرون لك كيفية تخزينه في ملف JS (كما طلبتم). ولكن قد أقترح عليك أن تخزينه في ملف XML، بدلا من ذلك؟ فإنه من السهل إلى حد ما لإدارة (IMO).

وإنشاء ملف XML، مع مداخل مثل هذا:

<text id="welcome_to_site">Welcome to our site!</text>
<text id="come_back_soon">Come back soon!</text>

وبعد ذلك يمكنك بسهولة انتزاع كل من النص الذي تحتاجه في حياتك العادية JS / مسج:

var text = new Object();
$.ajax({
    async: false,
    type: 'GET',
    url: 'text.xml',
    dataType: "xml",
    success: function(xml){
        $(xml).find('text').each(function(){
            text[$(this).attr('id')] = $(this).text();
        });
    }
});

واستدعاء بعض النصوص، انها بسيطة مثل هذا:

وalert(text['welcome_to_site']);

ويمكنك دائما تغييره بسهولة في ملف XML: إضافة نص، إزالة النص، تحرير النص. انها بسيطة جدا. كما أنه يساعد على فصل التصميم الخاص بك وتفتح الأبواب للكم للسماح للآخرين لتحرير النص، الذين قد لا تكون قادرة على إذا كان لديهم لفرز من خلال مجموعة من جافا سكريبت.

إحدى الطرق للقيام بذلك هي تضمين ملف js منفصل في صفحتك يشير فعليًا إلى برنامج نصي من جانب الخادم.يمكن لهذا البرنامج النصي بعد ذلك تكرار السلاسل التي تحتاجها مثل هذا:

var STRINGS = {'greeting': "Hello", 'error': "Something went wrong"};

وفي صفحة الويب الخاصة بك يكون هذا:

نحن نفعل هذا من أجل http://addons.mozilla.org هنا: http://addons.mozilla.org/en-US/firefox/pages/js_constants.js

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