2010-11-10 10 views
7

के लिए गैर-ASCII वर्ण निर्दिष्ट करना मैं अपने आवेदन के लिए विंडोज़ इंस्टॉलर उत्पन्न करने के लिए एनएसआईएस का उपयोग कर रहा हूं। मुझे एक बहुभाषी इंस्टॉलर चाहिए। मैं तारों को निर्दिष्ट करने के लिए LangString का उपयोग कर रहा हूं।एनएसआईएस 'लैंगस्ट्रिंग

हालांकि, प्रलेखन ऐसा नहीं लगता है कि किसी को एक गैर-ASCII चरित्र को एन्कोड करना चाहिए। उदाहरण के लिए, जर्मन शब्द "बेनोटिग" (जहां 'ओ' में उमलॉट है) का उपयोग करने के लिए, मुझे ö को कैसे एन्कोड करना चाहिए?

उत्तर

3

Unicode version of NSIS का उपयोग करना आसान है। तब पूरी समस्या दूर हो जाती है।

2

मुझे लगता है हम NSIS यहाँ की एएनएसआई संस्करण के बारे में बात कर रहे हैं ...

LangString को 2 पैरामीटर भाषा आईडी (आप NSIS \ बिन \ MakeLangId.exe के साथ एक उत्पन्न कर सकते हैं, लेकिन आप के बाद से शायद पहले से ही MUI_LANGUAGE मैक्रो या लोड लैंगेजफाइल का उपयोग करें, $ {LANG_GERMAN} इत्यादि आपके लिए परिभाषित किए जाएंगे)

एनएसआईएस वास्तव में परवाह नहीं करता है कि स्ट्रिंग एन्कोड कैसे होती है, लेकिन यदि आपके पास अलग-अलग भाषाओं में बहुत सारे तार हैं, तो शायद यह एक लैंगस्ट्रिंग कमांड को बाहरी फाइलों में डालने का अच्छा विचार है जो आप कर सकते हैं! इस तरह आप विभिन्न कोडपेज और टेक्स्ट एडिटर्स के साथ विभिन्न भाषा फ़ाइलों को संपादित कर सकते हैं।

+0

एनएसआईएस द्वारा एएनएसआई द्वारा मानकीकृत किया गया है? उस तरफ, यह एन्कोडिंग के बारे में परवाह नहीं कर सकता है? इसे स्क्रीन पर टेक्स्ट प्रदर्शित करना होगा। यह कुछ एन्कोडिंग मानना ​​चाहिए। ISO-8859-1? UTF-8? क्या एन्कोडिंग निर्दिष्ट किया जा सकता है? यदि हां, तो कैसे? –

+0

नहीं, विंडोज 9एक्स की तरह एएनएसआई एएनएसआई है और यूनिकोड नहीं है। एनएसआईएस कुछ भी प्रदर्शित नहीं करता है, विंडोज़ करता है, एनएसआईएस सिर्फ इसे एक char * देता है। – Anders

+0

ठीक है, तो आप विंडोज़ को कैसे बताते हैं कि वर्ण एन्कोडिंग क्या है? –

1

आप NSIS संकलक की एएनएसआई संस्करण द्वारा यूनिकोड तार संकलित करने के लिए चाहते हैं, तो आप UCS-2 LE BOM साथ अलग .nsi फ़ाइल में इस तरह के तार डालने के लिए है प्रारूप (साथ Notepad++ यह देखने) और सीधे उस शामिल हैं।

मैं एक main.nsi के अंत में ऐसी फ़ाइलों का विशेष रूप से अंग्रेजी और रूसी संस्करण का उपयोग कर दिया है:

!ifdef LANG_ENGLISH 
!include "${PROJECT_SRCS_ROOT}\lang_en.nsi" 
!endif 

!ifdef LANG_RUSSIAN 
!include "${PROJECT_SRCS_ROOT}\lang_ru.nsi" 
!endif 
0

अगर आप NSIS का यूनिकोड संस्करण का उपयोग नहीं कर सकते हैं, तो आप में लैटिन -1 अपने पाठ सांकेतिक शब्दों में बदलना कर सकता है (आईएसओ 885 9 -1) जिसका उपयोग इन उमोट्स को ü, ä, ö

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