root / tmp / org.txm.setups / nsis / Include / LangFile.nsh @ 3117
Historique | Voir | Annoter | Télécharger (5,37 ko)
1 | 728 | mdecorde | /* |
---|---|---|---|
2 | 728 | mdecorde | |
3 | 728 | mdecorde | LangFile.nsh |
4 | 728 | mdecorde | |
5 | 2956 | mdecorde | Header file to create language files that can be |
6 | 728 | mdecorde | included with a single command. |
7 | 728 | mdecorde | |
8 | 2956 | mdecorde | Copyright 2008-2020 Joost Verburg, Anders Kjersem |
9 | 728 | mdecorde | |
10 | 728 | mdecorde | * Either LANGFILE_INCLUDE or LANGFILE_INCLUDE_WITHDEFAULT |
11 | 2956 | mdecorde | can be called from the script to include a language file. |
12 | 728 | mdecorde | |
13 | 728 | mdecorde | - LANGFILE_INCLUDE takes the language file name as parameter. |
14 | 728 | mdecorde | - LANGFILE_INCLUDE_WITHDEFAULT takes as additional second |
15 | 2956 | mdecorde | parameter, the default language file to load missing strings from. |
16 | 728 | mdecorde | |
17 | 728 | mdecorde | * Language strings in the language file have the format: |
18 | 728 | mdecorde | ${LangFileString} LANGSTRING_NAME "Text" |
19 | 728 | mdecorde | |
20 | 2956 | mdecorde | * There are two types of language header files: |
21 | 2956 | mdecorde | |
22 | 2956 | mdecorde | - NSIS multi-lang support; these must start with the LANGFILE macro and |
23 | 2956 | mdecorde | provide strings for features like MUI and MultiUser. If you are adding |
24 | 2956 | mdecorde | support for a new language to NSIS you should make a copy of English.nsh |
25 | 2956 | mdecorde | and translate this .nsh along with the .nlf. |
26 | 2956 | mdecorde | - Custom installer strings; these must start with the LANGFILE_EXT macro and |
27 | 2956 | mdecorde | contain translated versions of |
28 | 2956 | mdecorde | custom strings used in a particular installer. |
29 | 2956 | mdecorde | This is useful if you want to put the translations for each language in |
30 | 2956 | mdecorde | their own separate file. |
31 | 2956 | mdecorde | |
32 | 2956 | mdecorde | * Example: |
33 | 2956 | mdecorde | |
34 | 2956 | mdecorde | ; Setup.nsi |
35 | 2956 | mdecorde | !include "MUI.nsh" |
36 | 2956 | mdecorde | !insertmacro MUI_PAGE_INSTFILES |
37 | 2956 | mdecorde | !insertmacro MUI_LANGUAGE "Danish" |
38 | 2956 | mdecorde | !insertmacro LANGFILE_INCLUDE "DanishExtra.nsh" |
39 | 2956 | mdecorde | !insertmacro MUI_LANGUAGE "Swedish" |
40 | 2956 | mdecorde | !insertmacro LANGFILE_INCLUDE "SwedishExtra.nsh" |
41 | 2956 | mdecorde | Section |
42 | 2956 | mdecorde | MessageBox MB_OK "$(myCustomString)" |
43 | 2956 | mdecorde | SectionEnd |
44 | 2956 | mdecorde | |
45 | 2956 | mdecorde | ; SwedishExtra.nsh |
46 | 2956 | mdecorde | !insertmacro LANGFILE_EXT Swedish |
47 | 2956 | mdecorde | ${LangFileString} myCustomString "Bork bork" |
48 | 2956 | mdecorde | |
49 | 728 | mdecorde | */ |
50 | 728 | mdecorde | |
51 | 728 | mdecorde | !ifndef LANGFILE_INCLUDED |
52 | 728 | mdecorde | !define LANGFILE_INCLUDED |
53 | 728 | mdecorde | |
54 | 728 | mdecorde | !macro LANGFILE_INCLUDE FILENAME |
55 | 728 | mdecorde | |
56 | 2956 | mdecorde | ;Called from script: include a language file |
57 | 728 | mdecorde | |
58 | 728 | mdecorde | !ifdef LangFileString |
59 | 728 | mdecorde | !undef LangFileString |
60 | 728 | mdecorde | !endif |
61 | 728 | mdecorde | |
62 | 728 | mdecorde | !define LangFileString "!insertmacro LANGFILE_SETSTRING" |
63 | 728 | mdecorde | |
64 | 728 | mdecorde | !define LANGFILE_SETNAMES |
65 | 728 | mdecorde | !include "${FILENAME}" |
66 | 728 | mdecorde | !undef LANGFILE_SETNAMES |
67 | 728 | mdecorde | |
68 | 728 | mdecorde | ;Create language strings |
69 | 2956 | mdecorde | !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" |
70 | 728 | mdecorde | !include "${FILENAME}" |
71 | 728 | mdecorde | |
72 | 728 | mdecorde | !macroend |
73 | 728 | mdecorde | |
74 | 728 | mdecorde | !macro LANGFILE_INCLUDE_WITHDEFAULT FILENAME FILENAME_DEFAULT |
75 | 728 | mdecorde | |
76 | 2956 | mdecorde | ;Called from script: include a language file |
77 | 728 | mdecorde | ;Obtains missing strings from a default file |
78 | 728 | mdecorde | |
79 | 728 | mdecorde | !ifdef LangFileString |
80 | 728 | mdecorde | !undef LangFileString |
81 | 728 | mdecorde | !endif |
82 | 728 | mdecorde | |
83 | 728 | mdecorde | !define LangFileString "!insertmacro LANGFILE_SETSTRING" |
84 | 728 | mdecorde | |
85 | 728 | mdecorde | !define LANGFILE_SETNAMES |
86 | 728 | mdecorde | !include "${FILENAME}" |
87 | 728 | mdecorde | !undef LANGFILE_SETNAMES |
88 | 728 | mdecorde | |
89 | 728 | mdecorde | ;Include default language for missing strings |
90 | 2956 | mdecorde | !define LANGFILE_PRIV_INCLUDEISFALLBACK "${FILENAME_DEFAULT}" |
91 | 728 | mdecorde | !include "${FILENAME_DEFAULT}" |
92 | 2956 | mdecorde | !undef LANGFILE_PRIV_INCLUDEISFALLBACK |
93 | 2956 | mdecorde | |
94 | 728 | mdecorde | ;Create language strings |
95 | 2956 | mdecorde | !define /redef LangFileString "!insertmacro LANGFILE_LANGSTRING" |
96 | 728 | mdecorde | !include "${FILENAME_DEFAULT}" |
97 | 728 | mdecorde | |
98 | 728 | mdecorde | !macroend |
99 | 728 | mdecorde | |
100 | 2956 | mdecorde | !macro LANGFILE NLFID ENGNAME NATIVENAME NATIVEASCIINAME |
101 | 728 | mdecorde | |
102 | 728 | mdecorde | ;Start of standard NSIS language file |
103 | 728 | mdecorde | |
104 | 2956 | mdecorde | ; NLFID: Must match the name of the .nlf file |
105 | 2956 | mdecorde | ; ENGNAME: English name of language, "=" if it is the same as NLFID |
106 | 2956 | mdecorde | ; NATIVENAME: Native name of language. (In Unicode) |
107 | 2956 | mdecorde | ; NATIVEASCIINAME: Native name of language using only ASCII, "=" if it is the same as NATIVENAME |
108 | 2956 | mdecorde | |
109 | 2956 | mdecorde | ; Example: LANGFILE "Swedish" = "Svenska" = (This is the same as LANGFILE "Swedish" "Swedish" "Svenska" "Svenska") |
110 | 2956 | mdecorde | ; For more examples, see French.nsh, Greek.nsh and PortugueseBR.nsh |
111 | 2956 | mdecorde | |
112 | 728 | mdecorde | !ifdef LANGFILE_SETNAMES |
113 | 728 | mdecorde | |
114 | 728 | mdecorde | !ifdef LANGFILE_IDNAME |
115 | 728 | mdecorde | !undef LANGFILE_IDNAME |
116 | 728 | mdecorde | !endif |
117 | 728 | mdecorde | |
118 | 2956 | mdecorde | !define LANGFILE_IDNAME "${NLFID}" |
119 | 728 | mdecorde | |
120 | 2956 | mdecorde | ; ModernUI or the .nsi can change LANGFILE_LANGDLL_FMT if desired |
121 | 2956 | mdecorde | !ifndef LANGFILE_LANGDLL_FMT |
122 | 2956 | mdecorde | !ifndef NSIS_UNICODE |
123 | 2956 | mdecorde | !define LANGFILE_LANGDLL_FMT "%ENGNAME% / %NATIVEASCIINAME%" |
124 | 2956 | mdecorde | !endif |
125 | 2956 | mdecorde | !define /ifndef LANGFILE_LANGDLL_FMT "%NATIVENAME%" |
126 | 728 | mdecorde | !endif |
127 | 728 | mdecorde | |
128 | 2956 | mdecorde | !ifndef "LANGFILE_${NLFID}_NAME" |
129 | 2956 | mdecorde | !if "${ENGNAME}" == "=" |
130 | 2956 | mdecorde | !define /redef ENGNAME "${NLFID}" |
131 | 2956 | mdecorde | !endif |
132 | 2956 | mdecorde | !if "${NATIVEASCIINAME}" == "=" |
133 | 2956 | mdecorde | !define /redef NATIVEASCIINAME "${NATIVENAME}" |
134 | 2956 | mdecorde | !endif |
135 | 2956 | mdecorde | |
136 | 2956 | mdecorde | !define "LANGFILE_${NLFID}_ENGLISHNAME" "${ENGNAME}" |
137 | 2956 | mdecorde | !ifdef NSIS_UNICODE |
138 | 2956 | mdecorde | !define "LANGFILE_${NLFID}_NAME" "${NATIVENAME}" |
139 | 2956 | mdecorde | !else |
140 | 2956 | mdecorde | !define "LANGFILE_${NLFID}_NAME" "${NATIVEASCIINAME}" |
141 | 2956 | mdecorde | !endif |
142 | 2956 | mdecorde | |
143 | 2956 | mdecorde | !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_LANGDLL_FMT}" %NATIVEASCIINAME% "${NATIVEASCIINAME}" |
144 | 2956 | mdecorde | !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %NATIVENAME% "${NATIVENAME}" |
145 | 2956 | mdecorde | !searchreplace LANGFILE_${NLFID}_LANGDLL "${LANGFILE_${NLFID}_LANGDLL}" %ENGNAME% "${ENGNAME}" |
146 | 2956 | mdecorde | |
147 | 2956 | mdecorde | !endif |
148 | 2956 | mdecorde | |
149 | 728 | mdecorde | !endif |
150 | 728 | mdecorde | |
151 | 728 | mdecorde | !macroend |
152 | 728 | mdecorde | |
153 | 728 | mdecorde | !macro LANGFILE_EXT IDNAME |
154 | 728 | mdecorde | |
155 | 728 | mdecorde | ;Start of installer language file |
156 | 728 | mdecorde | |
157 | 728 | mdecorde | !ifdef LANGFILE_SETNAMES |
158 | 728 | mdecorde | |
159 | 728 | mdecorde | !ifdef LANGFILE_IDNAME |
160 | 728 | mdecorde | !undef LANGFILE_IDNAME |
161 | 728 | mdecorde | !endif |
162 | 728 | mdecorde | |
163 | 728 | mdecorde | !define LANGFILE_IDNAME "${IDNAME}" |
164 | 728 | mdecorde | |
165 | 728 | mdecorde | !endif |
166 | 728 | mdecorde | |
167 | 728 | mdecorde | !macroend |
168 | 728 | mdecorde | |
169 | 728 | mdecorde | !macro LANGFILE_SETSTRING NAME VALUE |
170 | 728 | mdecorde | |
171 | 728 | mdecorde | ;Set define with translated string |
172 | 728 | mdecorde | |
173 | 728 | mdecorde | !ifndef ${NAME} |
174 | 728 | mdecorde | !define "${NAME}" "${VALUE}" |
175 | 2956 | mdecorde | !ifdef LANGFILE_PRIV_INCLUDEISFALLBACK |
176 | 2956 | mdecorde | !warning 'LangString "${NAME}" for language ${LANGFILE_IDNAME} is missing, using fallback from "${LANGFILE_PRIV_INCLUDEISFALLBACK}"' |
177 | 2956 | mdecorde | !endif |
178 | 728 | mdecorde | !endif |
179 | 728 | mdecorde | |
180 | 728 | mdecorde | !macroend |
181 | 728 | mdecorde | |
182 | 728 | mdecorde | !macro LANGFILE_LANGSTRING NAME DUMMY |
183 | 728 | mdecorde | |
184 | 728 | mdecorde | ;Create a language string from a define and undefine |
185 | 728 | mdecorde | |
186 | 728 | mdecorde | LangString "${NAME}" "${LANG_${LANGFILE_IDNAME}}" "${${NAME}}" |
187 | 728 | mdecorde | !undef "${NAME}" |
188 | 728 | mdecorde | |
189 | 728 | mdecorde | !macroend |
190 | 728 | mdecorde | |
191 | 728 | mdecorde | !endif |