سؤال

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

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

المحلول

هناك أداة مجانية لتحرير ملفات resx حيث يمكنك أن ترى عدة لغات في آن واحد و نرى بوضوح ما هو مفقود أو خارج زيتا محرر الموارد

نصائح أخرى

على الرغم من أنه لا فرق الأداة في حد ذاتها ، RESX مزامن قد تساعدك هنا.الاستخدام الرئيسي لها هو تحديث المترجمة .ملفات resx مع إدخالات جديدة من لغة محايدة واحد ، وإزالة أي العناصر المحذوفة.

وربما الإخراج التي تم إنشاؤها بواسطة استخدامه مع /v تبديل سطر الأوامر سوف يكون ما تحتاجه.وإلا فإنه لا يأتي مع كامل C# كود المصدر ، لذلك ربما كنت يمكن أن يتكيف مع احتياجاتك.

إصدارات أحدث من Visual Studio (2010+) هناك الآن Visual Studio امتداد يسمى ResXManager (تم إنشاؤه من قبل tomenglert) الذي هو مدهش هذا.

فإنه يسمح لك لعرض كل الموارد في كل لغة جنبا إلى جنب ويبرز في عداد المفقودين الموارد.(في المثال أدناه هو من امتداد تحميل الصفحة.)

Example From Extension Download Page

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

في هذه الأثناء الحل لقد تم استخدام هذا:

  • فتح .resx الملفات في Visual Studio.
  • حدد كافة [Ctrl + A] وقطع [Ctrl + X] (وهذا قد يستغرق بعض الوقت بالنسبة للملفات الكبيرة - أن يكون المريض)
  • لصق [Ctrl + V] وحفظ (هذا سيتم إعادة إنشاء .resx الملفات مرتبة حسب مفاتيح)

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

لقد حاولت عدة XMl مهرجان دبي السينمائي الدولي الأدوات.هنا هو ملخص (شرط أن ما دفعني إلى تقييم كان من مهرجان دبي السينمائي الدولي Visual Studio ولدت .resx ملفات الموارد ، وهو ما أعتقد أنه خطأ كبير أن قدمت مايكروسوفت - ترتيب العناصر هو عشوائي ، نماذج Windows دائما إعادة كتابة ImageStream إذا كنت مجرد تغيير زر موقع و لا تفعل شيئا مع imageList).

  1. XmlDiff
  2. Araxis
  3. Altova DiffDog
  4. XML Notepad
  5. ExamXML
  6. السائل XML Studio 2009 (هناك XML مهرجان دبي السينمائي الدولي القائمة ، ولكن فقط ترخيص نسخة يمكن استخدامها.لذلك ليس لدي أي فرصة لمحاولة إعطائها)

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

  1. XmlDiff هو الأداة الأولى حاولت.يبدو أنه يمكن أن لا أريد أريد ولكن بعد تحميل شفرة المصدر (Visual Studio 2003) وجمعت مع Visual Studio 2005 (مع نجاح الترقية السيارات) يمكنني تجميع المشاريع الصغيرة بسلاسة.ولكن عند المقارنة بين اثنين الحقيقي .resx ملفات (1295 خطوط) أنها تحطمت.Debuging إلى رمز لا تعطيني فكرة عن ما حدث لأن ليس لدي أي شفرة المصدر من xmldiffpatch.dll XmlDiffPatch.View.dll.

    والسبب لم تحاول أن تعرف على مزيد من هذه الأداة تم تنسيق الإخراج ، أو تصميم واجهة المستخدم الرسومية.فإنه إخراج ملف HTML مع أبرز الاختلافات في Internet Explorer-استضافت النافذة.كبير ملف XML مهرجان دبي السينمائي الدولي ، ليس من السهل للاستخدام.

  2. XML Notepad لديه بسيطة المدمج في XML مهرجان دبي السينمائي الدولي.وفقا إطار الإخراج أعتقد أنه يستخدم داخليا XmlDiff هذا المكون.و الناتج هو نفس XmlDiff.سوف إلغاء تثبيته.

  3. Araxis هي أكثر تقليدية النص مهرجان دبي السينمائي الدولي أداة يمكن أن يقارن أيضا ملف ثنائي, صورة ملف, مجلد, و ملفات word.أنا أحب ذلك كثيرا جدا عن أي مهرجان دبي السينمائي الدولي مهمة إلا XML, لأنه لم XML-علم مهرجان دبي السينمائي الدولي خيارات الدعم.

  4. Altova DiffDog تبدو معقدة المنتج التجاري ، وأنه لم تحتوي على خيار تجاهل عنصر النظام ، الذي هو مفتاح ميزة بالنسبة لي.

    ولكن بعد محاولة بنفس الحقيقي .resx ملف (1295 خطوط لا واحد كبير في تجربتي), وجدت أن "تجاهل عنصر النظام" فقط لا تعمل بشكل جيد إذا كان اثنين من عناصر تقع في أماكن مختلفة في الملفين.

  5. ExamXML يبدو منتج تجاري ، ولكن منتج صغير.ولكن بعد محاولة, لقد وجدت أنه أكثر أداة مثالية في الوقت الحاضر عن توقعاتي.

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

label1.Size
label1.Location
label1.Width

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

على كل حال, سوف تستخدم ExamXML (مع الحذر) لمقارنة ملفات XML.

تحديث 1:سنوات مرت الآن يمكنني استخدام VS2017 و winform لم تتغير منذ الأولي الإجابة على هذا السؤال.عند العمل تحتاج إلى كسر إلى مختلف الناس أن هذه القضية برزت مرة أخرى مملة لي.

في الواقع لقد نسيت هذا الجواب جوجل جلبت لي هنا.

لقد بدأت من جديد التحقيق في الدورة ، بعض النتائج:https://www.codeproject.com/Articles/37022/Solving-the-resx-Merge-Problem يظهر كيف eaisly يمكننا نوع الملف resx البيانات/@اسم السمة من خلال LINQ.إنه لأمر مدهش.رمز الأساسية هو بيان واحد فقط يتكون من عدة LINQ.

ثم وجدت أيضا أن ResXResourceManager ، الذي أشار إلى جواب آخر في هذا الموضوع ، أجاب الكاتب إلى فوق رمز المشروع المادة وإضافة ميزة ResXResourceManager في ResxResourceManager, يمكنك تكوين البرنامج المساعد تلقائيا نوع الملف resx عندما(قبل) حفظه في علامة التبويب "تكوين".حتى أن هناك فرز الخيار يمكنك اختيار:CurrentCulture, ترتيبي أو IgnoreCase.... الخ

للأسف قانون مشروع الحل ResXResourceManager الحل تنتج نتيجة مختلفة ، مصدر متاح ، اكتشفت أن قانون مشروع حل علاج ">>" قيمة السمة كنص عادي حتى لغويا ذات الحاجيات يتم فصلها.وهذا يمكن أن تكون ثابتة بسهولة عن طريق إضافة TrimStart('>') إلى LINQ.

ولكن بعد تثبيت هذا اثنين أداة لا تزال تنتج نتيجة مختلفة.على culprint هو LINQ افتراضيا باستخدام CurrentCulture إلى نوع string و أنا تجاهل تماما revelant خيار الفرز في resXResourceManager ، لهذه المشكلة, أعتقد أن أفضل خيار الفرز هو "الترتيبية".بعد إضافة خيار الفرز على قانون مشروع حل و وضع نفس نوع الخيار في ResXResourceManager أخيرا أنها تنتج بالضبط نفس النتيجة!

على الرغم من أن resxResourceManager كبيرة مركزيا لإدارة الموارد وإصلاح resx العنصر من أجل قضية ، رمز المشروع أداة لا يزال لا تقدر بثمن بالنسبة لي ، لأنه مستقل بحيث يمكن استخدامها في مجموعة أوسع من القضايا ؛ بالإضافة إلى مدونة مقتضب جدا وأنيقة.

أود أن أضيف ملاحظة أخرى في نهاية التحديث الخاص بي ، وأنا استخدم السلحفاة بوابة, يمكنني استخدام Araxis مقارنة إصدارات مختلفة, انها تقريبا غير معنى لمقارنة اثنين الملف resx التنقيح ، ومع ذلك ، Araxis دعم مخصص فلتر لتحويل ملف الإدخال قبل مقارنة محرك رؤيتها.بالنسبة للمقارنة ، Araxis المكالمات تصفية عن طريق الأمر التالي:sortresx.exe -f C:\Users\ADMINI~1\AppData\Local emp\التجمع.8032.3.resx C:\Users\ADMINI~1\AppData\Local emp\التجمع.8032.2 C:\Users\ADMINI~1\AppData\Local emp\التجمع.8032.4

-f يعني foward أول اسم الملف هو ملف الإدخال ، والثاني اسم الملف هو الملف الناتج مرشح أن مكتوبة ، الثالث يمكن تجاهلها بأمان.بعد إجراء التغيير قليلا إلى رمز رمز المشروع, يمكنني الآن تجميع تصفية البرنامج ، configed في Araxis ، هل معقول resx مراجعة المقارنة حتى في القديم ، عابث ملفات resx.

هل يمكن أن الرمز شيء ما باستخدام XML مهرجان دبي السينمائي الدولي.انظر باستخدام XML مهرجان دبي السينمائي الدولي أداة التصحيح في التطبيقات الخاصة بك.

يمكنك استخدام أداة مثل TortoiseSVN هو مهرجان دبي السينمائي الدولي (إذا كنت تستخدم ويندوز).فقط حدد كل الملفات, انقر بزر الماوس الأيمن ثم اختر "مهرجان دبي السينمائي الدولي" من TortoiseSVN القائمة الفرعية.

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