سؤال

وأعتقد أن لدينا حل لهذا، ولكن هناك طريقة أفضل، أو يتم هذا الانتقال لكسر لي؟

وأنا إنشاء موقع على شبكة الإنترنت المحلية باستخدام ملفات RESX العالمية / المحلية. وهو اشتراط يمكن المستخدمين غير التقنيين تحرير السلاسل وإضافة لغات جديدة من خلال تطبيق الويب.

وهذا يبدو من السهل بما فيه الكفاية - لدي نموذج لعرض سلاسل ويتم حفظ التغييرات مع رمز مثل هذا المقتطف:

string filename = MapPath("App_GlobalResources/strings.hu.resx");
XmlDocument xDoc = new XmlDocument();
XmlNode xNode;

xDoc.Load(filename);
xNode = xDoc.SelectSingleNode("//root/data[@name='PageTitle']/value");
xNode.InnerText = txtNewTitle.Text;
xDoc.Save(filename);

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

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

المحلول

ولقد استعملت طريقة مشابهة من قبل ل"CMS" أساسية جدا. لم يستخدم على نطاق واسع في الموقع لكنها لم تسبب لي أي مشاكل.

وأنا لا أعتقد أن تغيير سوف RESX يسبب المهملات.

نصائح أخرى

ولقد فعلنا شيئا من هذا القبيل، ولكنها تستخدم قاعدة بيانات لتخزين القيم المستخدم تعديله. نحن ثم قدمت آلية احتياطي لخدمة قيمة متجاوزة مفتاح المترجمة.

وقال ذلك، وأعتقد أن الأسلوب الخاص بك ينبغي أن تعمل بشكل جيد.

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

public class GuiResources
{
    public string PageTitle
    {
        get return _pageTitle;
    }

    // Fired once when the class is first created.
    void LoadConfiguration()
    {
        // Load settings from config section
        _pageTitle = // Value from config
    }
}

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

وبعد ذلك في ملف web.config الخاص بك يمكنك إنشاء قسم مخصص ووضع restartOnExternalChanges="true". وبهذه الطريقة، التطبيق الخاص بك سوف تحصل على تغير عندما صنعت منها.

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