2008-10-13 8 views
8

मुझे पता है कि विजुअल स्टूडियो के लिए संसाधन फ़ाइलों को टेक्स्ट फाइलें प्राप्त करने के लिए टूल हैं। लेकिन मैं अपनी संसाधन फ़ाइलों से टेक्स्ट को टेक्स्ट फ़ाइल में प्राप्त करना चाहता हूं ताकि उनका अनुवाद किया जा सके। या ऐसा करने का एक बेहतर तरीका है?एक दृश्य स्टूडियो संसाधन फ़ाइल को एक टेक्स्ट फ़ाइल में कनवर्ट करें?

उत्तर

2

आप Simple Resx Editor का उपयोग कर सकते हैं, इसमें कुछ रोचक विशेषताएं हैं जो आपको अनुवाद प्रक्रिया में मदद करेंगी।

3

आप Resx Editor, एक छोटा अनुवाद-उन्मुख फ़ाइल संपादक का उपयोग कर सकते हैं।

  • लक्षित दर्शक: अनुवादक।
  • समर्थित फ़ाइल प्रारूप: माइक्रोसॉफ्ट RESX 2,0

यहाँ Joannes Vermoel की (नि: शुल्क उपकरण के लेखक) weblog entry इसके बारे में करने के लिए एक कड़ी है।

+0

@takrl धन्यवाद, परियोजना को इस लिंक पर स्पष्ट रूप से http: //resx.sourceforge पर ले जाया गया था।नेट/(मैंने जवाब अपडेट किया) – splattne

1

भले ही यह प्रतिद्वंद्वी है, संसाधन संसाधन की बजाय exe का अनुवाद करना बेहतर विचार है। क्यों यहाँ पढ़ें:

http://www.apptranslator.com/misconceptions.html

+0

अच्छा विचार, क्या आप एएसपी.NET संसाधन फ़ाइलों के लिए ऐसे किसी भी ऐप्स के बारे में जानते हैं? –

0

आप Microsoft से winres.exe इस्तेमाल कर सकते हैं, यह आप दृश्य स्टूडियो का उपयोग किए बिना खिड़कियों रूपों स्थानीय बनाना करने देता है। यह संसाधनों को टेक्स्ट फ़ाइल में सहेजता नहीं है, लेकिन विचार यह है कि प्रत्येक संस्कृति के लिए स्थानीयकरण विशेषज्ञ आवेदन के स्थानीय संस्करण उत्पन्न करने के लिए टूल का उपयोग कर सकता है। http://msdn.microsoft.com/en-us/library/8bxdx003(VS.80).aspx

1

आप Excel Resource Transfer पर एक नजर है कर सकते हैं:

यहाँ एक बेहतर व्याख्या दी गई है। यह माइक्रोसॉफ्ट एक्सेल के लिए संसाधन फ़ाइलों से ग्रंथों को आयात और निर्यात करने के लिए एक ऐड-इन है। एक परीक्षण संस्करण है। पूर्ण संस्करण लागत 25, - यूरो।

1

अंत में मैं सिर्फ एक त्वरित हैक प्रयोग किया है:

public class Export 
{ 
    public string Run() 
    { 
     var resources = new StringBuilder(); 

     var assembly = Assembly.GetExecutingAssembly(); 
     var types = from t in assembly.GetTypes() 
        where t != typeof(Export) 
        select t; 
     foreach (Type t in types) 
     { 
      resources.AppendLine(t.Name); 
      resources.AppendLine("Key, Value"); 
      var props = from p in t.GetProperties() 
         where !p.CanWrite && p.Name != "ResourceManager" 
         select p; 
      foreach (PropertyInfo p in props) 
      { 
       resources.AppendFormat("\"{0}\",\"{1}\"\n", p.Name, p.GetValue(null)); 
      } 

      resources.AppendLine(); 
     } 
     return resources.ToString(); 
    } 
} 

परियोजना (मेरा एक अलग "भाषा" परियोजना में हैं), जो your.resx फ़ाइलें हैं के लिए इस कोड को जोड़े तो निम्न कोड का उपयोग परिणाम को .csv में सहेजें ताकि इसे स्प्रेडशीट संपादक से लोड किया जा सके।

var hack = new Languages.Export(); 
var resourcesSummary = hack.Run(); 
var cultureName = System.Threading.Thread.CurrentThread.CurrentCulture.Name; 
using (TextWriter file = File.CreateText(@"C:\resources." + cultureName + ".csv")) 
{ 
    file.Write(resourcesSummary); 
} 

यह आपको .csv से फ़ाइलों को अपनी .resx फ़ाइलों पर वापस आयात करने की अनुमति नहीं देता है ताकि उन्हें संकलित किया जा सके। एक उपयोगिता होना अच्छा लगेगा जो ऐसा करेगा।

+1

यह असली जवाब है। – aliopi

0

यदि आप इसे वेब प्रोजेक्ट के लिए कर रहे हैं, तो अंतर्राष्ट्रीयकरण (अनुवाद सहित) करने का एक बेहतर तरीका i18n nuget package का उपयोग करना है। न केवल टेम्पलेट्स के साथ बेहतर काम करता है बल्कि स्थानीयकृत यूआरएल जैसे अन्य अच्छे-से-गुफाएं हैं। (जैसे POEdit) स्थान-विशिष्ट पाठ प्रदान करने के लिए

<div id="content"> 
    <h2>[[[Welcome to my web app!]]]</h2> 
    <h3><span>[[[Amazing slogan here]]]</span></h3> 
    <p>[[[Ad copy that would make Hiten Shah fall off his chair!]]]</p> 
    <span class="button" title="[[[Click to see plans and pricing]]]"> 
     <a href="@Url.Action("Plans", "Home", new { area = "" })"> 
      <strong>[[[SEE PLANS & PRICING]]]</strong> 
      <span>[[[Free unicorn with all plans!]]]</span> 
     </a> 
    </span> 
</div> 

एक के बाद निर्माण कार्य चल रहा है एक PO डेटाबेस है कि अनुवादकों कि पीओ संपादन उपकरण का उपयोग करने के लिए प्रदान किया जा सकता है उत्पन्न करता है:

यहाँ GitHub रेपो से एक उदाहरण है ।

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