2011-06-02 17 views
32

के दस्तावेज़ को स्थानीयकृत करने के लिए कैसे करें मेरे पास एक ओपन-सोर्स प्रोजेक्ट है (here) जिसका documentation वर्तमान में फ़्रेंच में है। सैंडकास्टल का उपयोग करके दस्तावेज़ में एक्सएमएल टिप्पणियों से दस्तावेज उत्पन्न होता है। अब मैं अंग्रेजी के प्रलेखन का अनुवाद और दोनों भाषाओं में प्रलेखन प्रदान करना चाहते हैं, लेकिन मैं वास्तव में नहीं जानता कि जहां शुरू करने के लिए ....NET लाइब्रेरी

  • मैं कोड से XML टिप्पणी निकालें और उन्हें डाल करने की आवश्यकता है एक अलग फाइल में? यदि हां, तो प्रक्रिया को स्वचालित करने के लिए कोई उपकरण हैं?
  • मैं दस्तावेज़ बनाने के लिए Sandcastle सहायता फ़ाइल निर्माता का उपयोग कर रहा हूं; क्या मुझे अंग्रेजी में दस्तावेज़ बनाने के लिए एक अलग परियोजना बनाने की ज़रूरत है, या यह एक ही परियोजना से किया जा सकता है?
  • क्या अनुवाद प्रक्रिया में मदद करने के लिए कोई उपकरण हैं? जैसे मूल और अनुवादित डॉक्टर पक्ष को तरफ प्रदर्शित करें?

मैं भी कैसे, बहुभाषी प्रलेखन निर्माण करने के लिए के रूप में मैं कुछ भी गूगल पर उपयोगी नहीं पा सके पर लिंक में दिलचस्पी रखता हूँ ...

+0

यही कारण है कि हम अंग्रेजी में सभी टिप्पणियां क्यों करते हैं :) –

+0

@ एंड्रियास, मैं आमतौर पर यही करता हूं ... लेकिन यह प्रोजेक्ट एक विशेष मामला है, क्योंकि शुरुआत में फ्रांसीसी भाषी समुदाय के सदस्यों के लिए इसका उद्देश्य था (डेवलपेज .com)। अब मैं इस पुस्तकालय के दर्शकों को विस्तृत करना चाहता हूं ... –

उत्तर

15

एक रणनीति है, जो सैंडकैसल XSLT फाइलों के साथ कुछ समन्वय की आवश्यकता होगी, अपने XML प्रलेखन पर xml:lang विशेषता का उपयोग करना होगा। विजुअल स्टूडियो 2010 कई टैग्स को रहने की अनुमति देता है (हालांकि आपको डुप्लिकेट टैग के बारे में शिकायतें मिल सकती हैं)।

/// <summary> 
/// Gets or sets the fill size of the load operation. 
/// </summary> 
/// <summary xml:lang="fr"> 
/// Obtient ou définit la taille de remplissage de l'opération de chargement. 
/// </summary> 
public int FillSize 
{ 
    get; 
    set; 
} 

परिणामस्वरूप उत्पादन:

<member name="P:Namespace.MyAttribute.FillSize"> 
    <summary> 
    Gets or sets the fill size of the load operation. 
    </summary> 
    <summary xml:lang="fr"> 
    Obtient ou définit la taille de remplissage de l'opération de chargement. 
    </summary> 
</member> 
+0

धन्यवाद, मुझे यह दृष्टिकोण पसंद है! यह रेमी बौर्गेल द्वारा सुझाए गए समाधान के समान है, लेकिन यह क्लीनर महसूस करता है ... –

+0

मुझे वास्तव में कोशिश करने का समय कभी नहीं मिला, लेकिन यह जवाब मुझे सबसे ज्यादा पसंद है, इसलिए मैं इसे स्वीकार करता हूं;) –

+0

मैं नहीं रहा हूं इस काम को कैसे करें इस बारे में कोई दस्तावेज ढूंढने में सक्षम। जब मैंने कोशिश की, तो मुझे बस मेरी सीएम फाइल में दोनों भाषाएं दिखाई दे रही हैं। "Sandcastle XSLT फ़ाइलों के साथ समन्वय" करने के तरीके पर कोई संकेत? –

1

आप अपने आप को एक मुश्किल से एक है। वास्तव में "सर्वश्रेष्ठ अभ्यास" नहीं है क्योंकि अधिकांश सॉफ्टवेयर अंग्रेजी में विकसित किए जाते हैं।

कहा जा रहा है कि, यदि आप अन्य बहुभाषी दस्तावेज देखते हैं, तो वे इस समस्या को कैसे संभालेंगे?

अंतर्राष्ट्रीय मानकों को लें। कुछ ISO 9001 की तरह। आपके पास एक ही दस्तावेज़ (ISO 9001:2008) अंग्रेजी, फ्रेंच, रूसी आदि में उपलब्ध है

या ISO 5247-2 में अंग्रेज़ी + फ़्रेंच + रूसी में एक दस्तावेज़ है।

आप परिवर्तनों को कैसे संभालेंगे? मान लें कि मैं आपको एक पैच देता हूं, लेकिन मेरी टिप्पणियां केवल अंग्रेजी में हैं, आपकी प्रक्रिया क्या होगी? क्या होगा यदि आपके पास अंग्रेजी में पैच ए है, स्पेनिश में पैच बी और अंग्रेजी + फ्रेंच में पैच सी?

एक और विकल्प परियोजना को फोर्क करना है। क्या मुख्य शाखा फ्रांसीसी में नवीनतम निर्माण के साथ है, फिर अन्य भाषाओं को अपने समय में अद्यतित करें?

अपने स्रोत कोड में टिप्पणियों को अलग करना बनाए रखने के लिए गन्दा हो जाएगा। फिर आप मूल रूप से अपनी बिल्ड स्क्रिप्ट में संसाधन फ़ाइल का उपयोग कर रहे हैं।

क्या यह एक हल समस्या है? यदि आप किसी भी बड़े, बहुभाषी, ओपन सोर्स प्रोजेक्ट के बारे में सोचते हैं, तो वे इसे कैसे संभालेंगे?

6

हम किया था कि इस तरह:

/// <summary> 
/// Description du produit 
/// <EN>Product's description</EN> 
/// </summary> 
  • फिर सैंडकैसल xslt फ़ाइल में

    (विकास:

    • हम एक "< एन>" टैग इस तरह सब हमारे प्रलेखन टैग के बाद डाल /presentaton/vs2005/transforms/main_sandcastle.xsl) हम "param" (हमारे लिए लाइन 95) मिलान करने वाले टेम्पलेट पर गए और हमने

      <span class="trad"> 
          <xsl:value-of select="msxsl:node-set(.)/EN"/> 
      </span> 
      
    • जोड़ा
    • और फिर आप अपने पसंदीदा रंग में अनुवाद प्रदर्शित करने के लिए सीएसएस बदल सकते हैं।

  • +0

    यह आशाजनक लग रहा है, धन्यवाद! लेकिन यह एक ही पृष्ठ पर दोनों भाषाओं को प्रदर्शित करता है, है ना? मैं 2 अलग-अलग दस्तावेज उत्पन्न करना चाहता हूं ... –

    +0

    वास्तव में यह दोनों दस्तावेज प्रदर्शित करता है, लेकिन आप sandcastle के लिए दो टेम्पलेट का निर्माण कर सकते हैं, जो एन टैग की दूसरी सामग्री को प्रदर्शित नहीं करता है। या आप इसे सीएसएस के माध्यम से संभाल सकते हैं लेकिन यह गंदा है। –

    +0

    बीटीडब्ल्यू, क्या आप इस एन टैग को केवल सारांश में, या सभी दस्तावेज फ़ील्ड (पैरा, रिटर्न वैल्यू इत्यादि) में डालते हैं? –

    2

    एक संभावित रणनीति कोड में एक डिफ़ॉल्ट भाषा होने दिया जाएगा और अलग से आपूर्ति अनुवाद।

    कोई फर्क नहीं पड़ता कि मैं कौन सी स्थानीय भाषाएं आखिरकार करूँगा, मैं दस्तावेज की डिफ़ॉल्ट/फ़ॉलबैक भाषा के रूप में अंग्रेजी चुनना पसंद करूंगा।

    कोड संरचना उदाहरण के लिए, आपके अनुवाद डेटाबेस के लिए अनुक्रमण प्रदान करता है:

    Type, NameWithNamespace, OptionalParameterName 
    
    "member", "MyProject.Core.Loader.FillSize", ... 
    

    आप एक उपकरण है कि प्रत्येक नाम स्थान/सदस्य के लिए एक यूआई में अनुवाद के लिए अनुमति होगी हो सकता था।

    आपके पास उन अनुवादकों की एक अलग टीम हो सकती है जिनके पास अभी तक कोई अनुवाद नहीं है, और अनुवाद की आपूर्ति करें।

    और जैसे ही आप थ्रेसहोल्ड के ऊपर अनुवादित वस्तुओं की मात्रा प्राप्त करते हैं, आप अपने जहाज को एक रिलीज के रूप में एक अनुवादित दस्तावेज भेजना शुरू कर सकते हैं।

    एक परिवर्तित डिफ़ॉल्ट अनुवाद इंगित करेगा कि आपको अन्य सभी भाषाओं के लिए भी एक नया अनुवाद चाहिए।

    बेशक, यदि आप एक प्रमुख नेमस्पेस-केवल परिवर्तन करते हैं, तो आप डेटाबेस में विज्ञापन-स्थान रीमेपिंग ऑपरेशन के रूप में नामस्थान को रीमेप कर सकते हैं।

    यदि आप ओपनसोर्स प्रोजेक्ट चलाते हैं, तो यह सहयोगी ऑनलाइन अनुवाद टूल का उपयोग करने के लिए सक्षम बनाता है। इस तरह के सहयोगी अनुवाद उत्पादन में लागू रणनीति के

    एक उदाहरण https://translations.atlassian.com/

    मूल रूप से आप सिर्फ कदम और अनुवाद के ऑनलाइन योगदान करना आरंभ कर सकता है।

    यह प्रोडक्ट्स का अनुवाद करने के लिए स्थापित है, दस्तावेज़ीकरण नहीं, लेकिन एक ही अभ्यास लागू होता है।

    +0

    हां, मुझे लगता है कि कोड से अलग अनुवादित दस्तावेज़ सामान्य मामले में ऐसा करने का एकमात्र समझदार तरीका है। मेरा उपयोग मामला थोड़ा अलग था, क्योंकि मैंने कभी भी 2 से अधिक भाषाओं को प्रदान करने का इरादा नहीं रखा था; इसलिए कोड में दोनों भाषाओं को रखना अभी भी उचित था, जिससे इसे अद्यतित रखना आसान हो गया। –

    1

    बस किसी को किसी समाधान की आवश्यकता होने पर Surviveplus.XmlCommentLocalization नामक नुजेट पैकेज है। चौका देने वाला!

    +0

    ठीक है, लेकिन यह वास्तव में क्या करता है? कोई प्रलेखन नहीं है, कोई प्रोजेक्ट साइट नहीं है, और survवीप्लस.net वेबसाइट जापानी में है ... –

    +0

    यह सिर्फ अलग-अलग भाषा में स्टैंडअलोन एक्सएमएल उत्पन्न करता है। तो आपको कई एक्सएमएल फाइलें मिलती हैं। और उनमें से प्रत्येक को आपके पसंदीदा टूल द्वारा अलग से संसाधित किया जा सकता है। जैसे sandcastle –

    +0

    हाँ, लेकिन यह उन फ़ाइलों को कैसे उत्पन्न करता है? क्या आप डॉक्टर टिप्पणियों में भाषा निर्दिष्ट करते हैं? –

    संबंधित मुद्दे