2010-11-10 11 views
7

sto usando NSIS per generare un Windows' installatore per la mia applicazione. Mi piacerebbe un programma di installazione multilingue. Sto usando LangString per specificare le stringhe.Specifica caratteri non-ASCII per NSIS' LangString

Tuttavia, la documentazione non sembra dire come si deve codificare un carattere non ASCII. Ad esempio, per usare la parola tedesca "benötigt" (dove "o" ha una umlaut), come dovrei codificare il ö?

risposta

2

presumo stiamo parlando della versione ANSI di NSIS qui ...

Il secondo parametro da LangString è l'ID della lingua (È possibile generare uno con NSIS \ Bin \ MakeLangId.exe, ma dato che probabilmente già utilizzare la macro MUI_LANGUAGE o LoadLanguageFile, $ {LANG_GERMAN} etc saranno definiti per voi)

NSIS in realtà non interessa come la stringa è codificata, ma se avete un sacco di stringhe in diverse lingue, è probabilmente un buona idea di mettere i comandi di LangString in file esterni che puoi! includere. In questo modo è possibile modificare diversi file di lingua con diverse codepage e editor di testo.

+0

NSIS è stato standardizzato da ANSI? A parte questo, come può non interessarsi della codifica? Deve visualizzare il testo sullo schermo. Deve assumere qualche codifica. ISO-8859-1? UTF-8? È possibile specificare la codifica? Se é cosi, come? –

+0

No, ANSI come Windows 9x è ANSI e non Unicode. NSIS non visualizza nulla, Windows lo fa, NSIS gli dà solo un carattere *. – Anders

+0

OK, quindi come si comunica a Windows quale è la codifica del carattere? –

1

Se si desidera compilare le stringhe Unicode la versione ANSI di NSIS compilatore, allora bisogna mettere tali stringhe in file separato .nsi con UCS-2 LE BOM (occhiata con Notepad++) formato e comprendere direttamente che.

Sono utilizzando le versioni in particolare inglese e russo di tali file al termine di un 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

se non è possibile utilizzare la versione Unicode di INS, si potrebbe codificare il testo in latino-1 (ISO 8859-1), che può essere utilizzato per la produzione di questi dieresi come ü, ä, ö

Problemi correlati