Taranis Q X7 optimized wizard (#5198)
[opentx.git] / radio / src / translations.h
blob8344ffc43470e426e395b765d0f0279233f72c2a
1 /*
2 * Copyright (C) OpenTX
4 * Based on code named
5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
21 #ifndef _TRANSLATIONS_H_
22 #define _TRANSLATIONS_H_
24 #if defined(TRANSLATIONS_FR)
25 #include "translations/fr.h"
26 #define LEN_SPECIAL_CHARS 3
27 #elif defined(TRANSLATIONS_IT)
28 #include "translations/it.h"
29 #define LEN_SPECIAL_CHARS 1
30 #elif defined(TRANSLATIONS_SE)
31 #include "translations/se.h"
32 #define LEN_SPECIAL_CHARS 6
33 #elif defined(TRANSLATIONS_FI)
34 #include "translations/fi.h"
35 #define LEN_SPECIAL_CHARS 6
36 #elif defined(TRANSLATIONS_DE)
37 #include "translations/de.h"
38 #define LEN_SPECIAL_CHARS 6
39 #elif defined(TRANSLATIONS_CZ)
40 #include "translations/cz.h"
41 #define LEN_SPECIAL_CHARS 17
42 #elif defined(TRANSLATIONS_ES)
43 #include "translations/es.h"
44 #define LEN_SPECIAL_CHARS 0
45 #elif defined(TRANSLATIONS_PL)
46 #include "translations/pl.h"
47 #define LEN_SPECIAL_CHARS 0
48 #elif defined(TRANSLATIONS_PT)
49 #include "translations/pt.h"
50 #define LEN_SPECIAL_CHARS 0
51 #elif defined(TRANSLATIONS_NL)
52 #include "translations/nl.h"
53 #define LEN_SPECIAL_CHARS 0
54 #else
55 #include "translations/en.h"
56 #define LEN_SPECIAL_CHARS 0
57 #endif
59 #define PSIZE(x) ( sizeof(x) - 1 )
60 #define EOFS(x) ( OFS_##x + sizeof(TR_##x) )
62 #if defined(PCBTARANIS)
63 #define HINT(s) " " s " "
64 #else
65 #define HINT(s) s
66 #endif
68 #if LCD_W >= 480
69 #define TR3(x, y, z) z
70 #define TR2(x, y) y
71 #elif LCD_W >= 212
72 #define TR3(x, y, z) y
73 #define TR2(x, y) y
74 #else
75 #define TR3(x, y, z) x
76 #define TR2(x, y) x
77 #endif
79 #define TR(x, y) TR2(x, y) // for compatibility
81 #if defined(COLORLCD)
82 #define BUTTON(x) x
83 #else
84 #define BUTTON(x) "[" x "]"
85 #endif
87 #if defined(PCBHORUS)
88 #define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_BATTERY TR_VTRAINER_BLUETOOTH
89 #elif defined(PCBX9E)
90 #define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_SBUS_MODULE TR_VTRAINER_MASTER_CPPM_MODULE TR_VTRAINER_MASTER_BATTERY TR_VTRAINER_BLUETOOTH
91 #elif defined(PCBTARANIS) && defined(BLUETOOTH)
92 #define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_SBUS_MODULE TR_VTRAINER_MASTER_CPPM_MODULE TR_VTRAINER_MASTER_BATTERY TR_VTRAINER_BLUETOOTH
93 #elif defined(PCBTARANIS)
94 #define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_SBUS_MODULE TR_VTRAINER_MASTER_CPPM_MODULE TR_VTRAINER_MASTER_BATTERY
95 #elif defined(CPUARM)
96 #define TR_VTRAINERMODES TR_VTRAINER_MASTER_JACK TR_VTRAINER_SLAVE_JACK TR_VTRAINER_MASTER_CPPM_MODULE TR_VTRAINER_MASTER_BATTERY
97 #endif
99 #if (LCD_W == 212)
100 #define LCDW_128_480_LINEBREAK ""
101 #else
102 #define LCDW_128_480_LINEBREAK "\036"
103 #endif
105 // The non-0-terminated-strings
107 extern const pm_char STR_OPEN9X[];
109 #define OFS_OFFON 0
110 #define OFS_MMMINV (OFS_OFFON + sizeof(TR_OFFON))
111 #define OFS_NCHANNELS (OFS_MMMINV + sizeof(TR_MMMINV))
112 #if defined(GRAPHICS)
113 #define OFS_VBEEPMODE (OFS_NCHANNELS + sizeof(TR_NCHANNELS))
114 #else
115 #define OFS_VBEEPLEN (OFS_NCHANNELS + sizeof(TR_NCHANNELS))
116 #define OFS_VBEEPMODE (OFS_VBEEPLEN + sizeof(TR_VBEEPLEN))
117 #endif
118 #if defined(ROTARY_ENCODERS)
119 #define OFS_VRENAVIG (OFS_VBEEPMODE + sizeof(TR_VBEEPMODE))
120 #define OFS_VRENCODERS (OFS_VRENAVIG + sizeof(TR_VRENAVIG))
121 #define OFS_TRNMODE (OFS_VRENCODERS + sizeof(TR_VRENCODERS))
122 #elif defined(ROTARY_ENCODER_NAVIGATION)
123 #define OFS_VRENCODERS (OFS_VBEEPMODE + sizeof(TR_VBEEPMODE))
124 #define OFS_TRNMODE (OFS_VRENCODERS + sizeof(TR_VRENCODERS))
125 #else
126 #define OFS_TRNMODE (OFS_VBEEPMODE + sizeof(TR_VBEEPMODE))
127 #endif
128 #define OFS_TRNCHN (OFS_TRNMODE + sizeof(TR_TRNMODE))
129 #if defined(PCBTARANIS) || defined(PCBHORUS)
130 #define OFS_UART3MODES (OFS_TRNCHN + sizeof(TR_TRNCHN))
131 #define OFS_SWTYPES (OFS_UART3MODES + sizeof(TR_UART3MODES))
132 #define OFS_POTTYPES (OFS_SWTYPES + sizeof(TR_SWTYPES))
133 #define OFS_SLIDERTYPES (OFS_POTTYPES + sizeof(TR_POTTYPES))
134 #define OFS_VTRIMINC (OFS_SLIDERTYPES + sizeof(TR_SLIDERTYPES))
135 #else
136 #define OFS_VTRIMINC (OFS_TRNCHN + sizeof(TR_TRNCHN))
137 #endif
138 #if defined(CPUARM)
139 #define OFS_VDISPLAYTRIMS (OFS_VTRIMINC + sizeof(TR_VTRIMINC))
140 #define OFS_RETA123 (OFS_VDISPLAYTRIMS + sizeof(TR_VDISPLAYTRIMS))
141 #else
142 #define OFS_RETA123 (OFS_VTRIMINC + sizeof(TR_VTRIMINC))
143 #endif
144 #define OFS_VPROTOS (OFS_RETA123 + sizeof(TR_RETA123))
145 #define OFS_POSNEG (OFS_VPROTOS + sizeof(TR_VPROTOS))
146 #if defined(PCBSKY9X) && defined(REVX)
147 #define OFS_VOUTPUT_TYPE (OFS_POSNEG + sizeof(TR_POSNEG))
148 #define OFS_VBLMODE (OFS_VOUTPUT_TYPE + sizeof(TR_VOUTPUT_TYPE))
149 #else
150 #define OFS_VBLMODE (OFS_POSNEG + sizeof(TR_POSNEG))
151 #endif
152 #define OFS_VCURVEFUNC (OFS_VBLMODE + sizeof(TR_VBLMODE))
153 #define OFS_VMLTPX (OFS_VCURVEFUNC + sizeof(TR_VCURVEFUNC))
154 #define OFS_VMLTPX2 (OFS_VMLTPX + sizeof(TR_VMLTPX))
155 #define OFS_VMIXTRIMS (OFS_VMLTPX2 + sizeof(TR_VMLTPX2))
156 #define OFS_VCSWFUNC (OFS_VMIXTRIMS + sizeof(TR_VMIXTRIMS))
157 #define OFS_VFSWFUNC (OFS_VCSWFUNC + sizeof(TR_VCSWFUNC))
158 #define OFS_VFSWRESET (OFS_VFSWFUNC + sizeof(TR_VFSWFUNC))
159 #define OFS_FUNCSOUNDS (OFS_VFSWRESET + sizeof(TR_VFSWRESET))
160 #define OFS_VTELEMCHNS (OFS_FUNCSOUNDS + sizeof(TR_FUNCSOUNDS))
161 #if defined(TELEMETRY_FRSKY) || defined(CPUARM)
162 #if defined(CPUARM)
163 #define OFS_VTELEMUNIT (OFS_VTELEMCHNS)
164 #define OFS_VALARM (OFS_VTELEMUNIT + sizeof(TR_VTELEMUNIT))
165 #else
166 #define OFS_VTELEMUNIT (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS))
167 #define OFS_VALARM (OFS_VTELEMUNIT + sizeof(TR_VTELEMUNIT))
168 #endif
169 #define OFS_VALARMFN (OFS_VALARM + sizeof(TR_VALARM))
170 #define OFS_VTELPROTO (OFS_VALARMFN + sizeof(TR_VALARMFN))
171 #define OFS_GPSFORMAT (OFS_VTELPROTO + sizeof(TR_VTELPROTO))
172 #define OFS_AMPSRC (OFS_GPSFORMAT + sizeof(TR_GPSFORMAT))
173 #define OFS_VARIOSRC (OFS_AMPSRC + sizeof(TR_AMPSRC))
174 #define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC))
175 #define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VTELEMSCREENTYPE))
176 #else
177 #define OFS_VTEMPLATES (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS))
178 #endif
179 #if defined(TEMPLATES)
180 #define TR_VTEMPLATES TR_TEMPLATE_CLEAR_MIXES TR_TEMPLATE_SIMPLE_4CH TR_TEMPLATE_STICKY_TCUT TR_TEMPLATE_VTAIL TR_TEMPLATE_DELTA TR_TEMPLATE_ECCPM TR_TEMPLATE_HELI TR_TEMPLATE_SERVO_TEST
181 #define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES))
182 #else
183 #define OFS_VSWASHTYPE (OFS_VTEMPLATES)
184 #endif
185 #if defined(HELI)
186 #define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE))
187 #else
188 #define OFS_VKEYS (OFS_VSWASHTYPE)
189 #endif
190 #define OFS_VSWITCHES (OFS_VKEYS + sizeof(TR_VKEYS))
191 #define OFS_VSRCRAW (OFS_VSWITCHES + sizeof(TR_VSWITCHES))
192 #if defined(TRANSLATIONS_CZ) && defined(CPUARM)
193 #define OFS_INPUTNAMES (OFS_VSRCRAW + sizeof(TR_VSRCRAW))
194 #define OFS_VTMRMODES (OFS_INPUTNAMES + sizeof(TR_INPUTNAMES))
195 #else
196 #define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW))
197 #endif
198 #define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES))
199 #if defined(CPUM2560) || defined(CPUARM)
200 #define OFS_VPERSISTENT (OFS_DATETIME + sizeof(TR_DATETIME))
201 #define OFS_VLCD (OFS_VPERSISTENT + sizeof(TR_VPERSISTENT))
202 #else
203 #define OFS_VLCD (OFS_DATETIME)
204 #endif
205 #if defined(CPUARM)
206 #define OFS_VUNITSSYSTEM (OFS_VLCD + sizeof(TR_VLCD))
207 #define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM))
208 #define OFS_VVARIOCENTER (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN))
209 #define OFS_COUNTRYCODES (OFS_VVARIOCENTER + sizeof(TR_VVARIOCENTER))
210 #else
211 #define OFS_COUNTRYCODES (OFS_VLCD)
212 #endif
213 #if defined(PXX) || defined(CPUARM)
214 #define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES))
215 #define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE))
216 #else
217 #define OFS_VFAILSAFE (OFS_COUNTRYCODES)
218 #define OFS_VTRAINERMODES (OFS_VFAILSAFE)
219 #endif
220 #if defined(CPUARM)
221 #define OFS_TARANIS_PROTOCOLS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES))
222 #define OFS_TELEMETRY_PROTOCOLS (OFS_TARANIS_PROTOCOLS + sizeof(TR_TARANIS_PROTOCOLS))
223 #define OFS_XJT_PROTOCOLS (OFS_TELEMETRY_PROTOCOLS + sizeof(TR_TELEMETRY_PROTOCOLS))
224 #define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS))
225 #if defined(MULTIMODULE)
226 #define OFS_MULTI_PROTOCOLS (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
227 #define OFS_VOLTSRC (OFS_MULTI_PROTOCOLS + sizeof(TR_MULTI_PROTOCOLS))
228 #else
229 #define OFS_VOLTSRC (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS))
230 #endif
231 #define OFS_CURVE_TYPES (OFS_VOLTSRC + sizeof(TR_VOLTSRC))
232 #define OFS_VSENSORTYPES (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES))
233 #define OFS_VFORMULAS (OFS_VSENSORTYPES + sizeof(TR_VSENSORTYPES))
234 #define OFS_VPREC (OFS_VFORMULAS + sizeof(TR_VFORMULAS))
235 #define OFS_VCELLINDEX (OFS_VPREC + sizeof(TR_VPREC))
236 #if defined(BLUETOOTH)
237 #define OFS_BLUETOOTH_MODES (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX))
238 #define OFS_VANTENNATYPES (OFS_BLUETOOTH_MODES + sizeof(TR_BLUETOOTH_MODES))
239 #else
240 #define OFS_VANTENNATYPES (OFS_VCELLINDEX + sizeof(TR_VCELLINDEX))
241 #endif
242 #define OFS_MAVLINK_BAUDS (OFS_VANTENNATYPES + sizeof(TR_VANTENNATYPES))
243 #else
244 #define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES)
245 #endif
246 #if defined(TELEMETRY_MAVLINK)
247 #define OFS_MAVLINK_AC_MODES (OFS_MAVLINK_BAUDS + sizeof(TR_MAVLINK_BAUDS))
248 #define OFS_MAVLINK_AP_MODES (OFS_MAVLINK_AC_MODES + sizeof(TR_MAVLINK_AC_MODES))
249 #define OFS_SPARE (OFS_MAVLINK_AP_MODES + sizeof(TR_MAVLINK_AP_MODES))
250 #else
251 #define OFS_SPARE (OFS_MAVLINK_BAUDS)
252 #endif
254 #define STR_OFFON (STR_OPEN9X + OFS_OFFON)
255 #define STR_MMMINV (STR_OPEN9X + OFS_MMMINV)
256 #define STR_NCHANNELS (STR_OPEN9X + OFS_NCHANNELS)
257 #if !defined(GRAPHICS)
258 #define STR_VBEEPLEN (STR_OPEN9X + OFS_VBEEPLEN)
259 #endif
260 #define STR_VBEEPMODE (STR_OPEN9X + OFS_VBEEPMODE)
261 #define STR_TRNMODE (STR_OPEN9X + OFS_TRNMODE)
262 #define STR_TRNCHN (STR_OPEN9X + OFS_TRNCHN)
263 #define STR_UART3MODES (STR_OPEN9X + OFS_UART3MODES)
264 #define STR_SWTYPES (STR_OPEN9X + OFS_SWTYPES)
265 #define STR_POTTYPES (STR_OPEN9X + OFS_POTTYPES)
266 #define STR_SLIDERTYPES (STR_OPEN9X + OFS_SLIDERTYPES)
267 #define STR_VTRIMINC (STR_OPEN9X + OFS_VTRIMINC)
268 #define STR_VDISPLAYTRIMS (STR_OPEN9X + OFS_VDISPLAYTRIMS)
269 #define STR_RETA123 (STR_OPEN9X + OFS_RETA123)
270 #define STR_VPROTOS (STR_OPEN9X + OFS_VPROTOS)
271 #define STR_POSNEG (STR_OPEN9X + OFS_POSNEG)
272 #if defined(PCBSKY9X) && defined(REVX)
273 #define STR_VOUTPUT_TYPE (STR_OPEN9X + OFS_VOUTPUT_TYPE)
274 #endif
275 #define STR_VBLMODE (STR_OPEN9X + OFS_VBLMODE)
276 #define STR_VCURVEFUNC (STR_OPEN9X + OFS_VCURVEFUNC)
277 #define STR_VSIDE STR_VCURVEFUNC
278 #define LEN_VSIDE LEN_VCURVEFUNC
279 #define STR_VMLTPX (STR_OPEN9X + OFS_VMLTPX)
280 #define STR_VMLTPX2 (STR_OPEN9X + OFS_VMLTPX2)
281 #define STR_VMIXTRIMS (STR_OPEN9X + OFS_VMIXTRIMS)
282 #define STR_VCSWFUNC (STR_OPEN9X + OFS_VCSWFUNC)
283 #define STR_VFSWFUNC (STR_OPEN9X + OFS_VFSWFUNC)
284 #define STR_VFSWRESET (STR_OPEN9X + OFS_VFSWRESET)
285 #define STR_FUNCSOUNDS (STR_OPEN9X + OFS_FUNCSOUNDS)
286 #define STR_VTELEMCHNS (STR_OPEN9X + OFS_VTELEMCHNS)
288 #if defined(TELEMETRY_FRSKY) || defined(CPUARM)
289 #if defined(CPUARM)
290 #define STR_VTELEMUNIT (STR_OPEN9X + OFS_VTELEMUNIT)
291 #define STR_VOLTSRC (STR_OPEN9X + OFS_VOLTSRC)
292 #else
293 #define STR_VTELEMUNIT (STR_OPEN9X + OFS_VTELEMUNIT)
294 #endif
295 #define STR_VALARM (STR_OPEN9X + OFS_VALARM)
296 #define STR_VALARMFN (STR_OPEN9X + OFS_VALARMFN)
297 #define STR_VTELPROTO (STR_OPEN9X + OFS_VTELPROTO)
298 #define STR_GPSFORMAT (STR_OPEN9X + OFS_GPSFORMAT)
299 #define STR_AMPSRC (STR_OPEN9X + OFS_AMPSRC)
300 #define STR_VARIOSRC (STR_OPEN9X + OFS_VARIOSRC)
301 #define STR_VTELEMSCREENTYPE (STR_OPEN9X + OFS_VSCREEN)
302 #define STR_TELEMCHNS (STR_OPEN9X + OFS_TELEMCHNS)
303 #endif
305 #if defined(TEMPLATES)
306 #define STR_VTEMPLATES (STR_OPEN9X + OFS_VTEMPLATES)
307 #endif
309 #if defined(HELI)
310 #define STR_VSWASHTYPE (STR_OPEN9X + OFS_VSWASHTYPE)
311 #endif
313 #define STR_VKEYS (STR_OPEN9X + OFS_VKEYS)
314 #define STR_VSWITCHES (STR_OPEN9X + OFS_VSWITCHES)
315 #define STR_VSRCRAW (STR_OPEN9X + OFS_VSRCRAW)
316 #if defined(TRANSLATIONS_CZ) && defined(CPUARM)
317 #define STR_INPUTNAMES (STR_OPEN9X + OFS_INPUTNAMES)
318 #endif
319 #define STR_VTMRMODES (STR_OPEN9X + OFS_VTMRMODES)
321 #if defined(ROTARY_ENCODERS)
322 #define STR_VRENAVIG (STR_OPEN9X + OFS_VRENAVIG)
323 #endif
325 #if defined(ROTARY_ENCODER_NAVIGATION)
326 #define STR_VRENCODERS (STR_OPEN9X + OFS_VRENCODERS)
327 #endif
329 #if defined(CPUM2560) || defined(CPUARM)
330 #define STR_DATETIME (STR_OPEN9X + OFS_DATETIME)
331 #define STR_VPERSISTENT (STR_OPEN9X + OFS_VPERSISTENT)
332 #endif
334 #if defined(CPUARM)
335 #define STR_VLCD (STR_OPEN9X + OFS_VLCD)
336 #define STR_VUNITSSYSTEM (STR_OPEN9X + OFS_VUNITSSYSTEM)
337 #define STR_VBEEPCOUNTDOWN (STR_OPEN9X + OFS_VBEEPCOUNTDOWN)
338 #define STR_VVARIOCENTER (STR_OPEN9X + OFS_VVARIOCENTER)
339 #endif
341 #if defined(PXX) || defined(CPUARM)
342 #define STR_COUNTRYCODES (STR_OPEN9X + OFS_COUNTRYCODES)
343 #define STR_VFAILSAFE (STR_OPEN9X + OFS_VFAILSAFE)
344 #endif
346 #if defined(CPUARM)
347 #define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES)
348 #define STR_TARANIS_PROTOCOLS (STR_OPEN9X + OFS_TARANIS_PROTOCOLS)
349 #define STR_TELEMETRY_PROTOCOLS (STR_OPEN9X + OFS_TELEMETRY_PROTOCOLS)
350 #define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS)
351 #define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS)
352 #if defined(MULTIMODULE)
353 #define STR_MULTI_PROTOCOLS (STR_OPEN9X + OFS_MULTI_PROTOCOLS)
354 #endif
355 #define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES)
356 #define STR_VSENSORTYPES (STR_OPEN9X + OFS_VSENSORTYPES)
357 #define STR_VFORMULAS (STR_OPEN9X + OFS_VFORMULAS)
358 #define STR_VPREC (STR_OPEN9X + OFS_VPREC)
359 #define STR_VCELLINDEX (STR_OPEN9X + OFS_VCELLINDEX)
360 #define STR_VANTENNATYPES (STR_OPEN9X + OFS_VANTENNATYPES)
361 #endif
363 #if defined(BLUETOOTH)
364 extern const pm_char STR_BLUETOOTH[];
365 #define STR_BLUETOOTH_MODES (STR_OPEN9X + OFS_BLUETOOTH_MODES)
366 #endif
368 #if defined(TELEMETRY_MAVLINK)
369 #define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS)
370 #define STR_MAVLINK_AC_MODES (STR_OPEN9X + OFS_MAVLINK_AC_MODES)
371 #define STR_MAVLINK_AP_MODES (STR_OPEN9X + OFS_MAVLINK_AP_MODES)
372 #endif
374 // The 0-terminated-strings
375 #define NO_INDENT(x) (x)+LEN_INDENT
377 extern const pm_char STR_POPUPS[];
379 #if defined(OFS_EXIT)
380 #define STR_EXIT (STR_POPUPS + OFS_EXIT)
381 #else
382 extern const pm_char STR_EXIT[];
383 #endif
385 #if !defined(PCBHORUS)
386 extern const pm_char STR_MENUWHENDONE[];
387 #endif
389 extern const pm_char STR_FREE[];
390 #define LEN_FREE PSIZE(TR_FREE)
391 extern const pm_char STR_DELETEMODEL[];
392 extern const pm_char STR_COPYINGMODEL[];
393 extern const pm_char STR_MOVINGMODEL[];
394 extern const pm_char STR_LOADINGMODEL[];
395 extern const pm_char STR_NAME[];
396 extern const pm_char STR_BITMAP[];
397 extern const pm_char STR_TIMER[];
398 extern const pm_char STR_ELIMITS[];
399 extern const pm_char STR_ETRIMS[];
400 extern const pm_char STR_TRIMINC[];
401 extern const pm_char STR_DISPLAY_TRIMS[];
402 extern const pm_char STR_TTRACE[];
403 extern const pm_char STR_TTRIM[];
404 extern const pm_char STR_BEEPCTR[];
405 extern const pm_char STR_USE_GLOBAL_FUNCS[];
406 #if defined(PCBSKY9X) && defined(REVX)
407 extern const pm_char STR_OUTPUT_TYPE[];
408 #endif
409 extern const pm_char STR_PROTO[];
410 extern const pm_char STR_PPMFRAME[];
411 extern const pm_char STR_MS[];
412 extern const pm_char STR_SWITCH[];
413 extern const pm_char STR_TRIMS[];
414 extern const pm_char STR_FADEIN[];
415 extern const pm_char STR_FADEOUT[];
416 extern const pm_char STR_DEFAULT[];
417 extern const pm_char STR_CHECKTRIMS[];
418 extern const pm_char STR_SWASHTYPE[];
419 extern const pm_char STR_COLLECTIVE[];
420 extern const pm_char STR_AILERON[];
421 extern const pm_char STR_ELEVATOR[];
422 extern const pm_char STR_SWASHRING[];
423 extern const pm_char STR_ELEDIRECTION[];
424 extern const pm_char STR_AILDIRECTION[];
425 extern const pm_char STR_COLDIRECTION[];
426 extern const pm_char STR_MODE[];
427 #if defined(AUDIO) && defined(BUZZER)
428 extern const pm_char STR_SPEAKER[];
429 extern const pm_char STR_BUZZER[];
430 #else
431 #define STR_SPEAKER STR_MODE
432 #define STR_BUZZER STR_MODE
433 #endif
434 extern const pm_char STR_NOFREEEXPO[];
435 extern const pm_char STR_NOFREEMIXER[];
436 extern const pm_char STR_SOURCE[];
437 extern const pm_char STR_WEIGHT[];
438 extern const pm_char STR_EXPO[];
439 extern const pm_char STR_SIDE[];
440 extern const pm_char STR_DIFFERENTIAL[];
441 extern const pm_char STR_OFFSET[];
442 extern const pm_char STR_TRIM[];
443 extern const pm_char STR_DREX[];
444 extern const pm_char STR_CURVE[];
445 extern const pm_char STR_FLMODE[];
446 extern const pm_char STR_MIXWARNING[];
447 extern const pm_char STR_OFF[];
448 extern const pm_char STR_MULTPX[];
449 extern const pm_char STR_DELAYDOWN[];
450 extern const pm_char STR_DELAYUP[];
451 extern const pm_char STR_SLOWDOWN[];
452 extern const pm_char STR_SLOWUP[];
453 extern const pm_char STR_MIXER[];
454 extern const pm_char STR_CV[];
455 extern const pm_char STR_GV[];
456 extern const pm_char STR_ACHANNEL[];
457 extern const pm_char STR_RANGE[];
458 extern const pm_char STR_CENTER[];
459 extern const pm_char STR_BAR[];
460 extern const pm_char STR_ALARM[];
461 extern const pm_char STR_USRDATA[];
462 extern const pm_char STR_BLADES[];
463 extern const pm_char STR_SCREEN[];
464 extern const pm_char STR_SOUND_LABEL[];
465 extern const pm_char STR_LENGTH[];
466 extern const pm_char STR_BEEP_LENGTH[];
467 #if defined(CPUARM)
468 extern const pm_char STR_BEEP_LENGTH[];
469 #else
470 #define STR_BEEP_LENGTH STR_LENGTH
471 #endif
472 extern const pm_char STR_SPKRPITCH[];
473 extern const pm_char STR_HAPTIC_LABEL[];
474 extern const pm_char STR_HAPTICSTRENGTH[];
475 extern const pm_char STR_CONTRAST[];
476 extern const pm_char STR_ALARMS_LABEL[];
477 #if defined(BATTGRAPH) || defined(CPUARM)
478 extern const pm_char STR_BATTERY_RANGE[];
479 #endif
480 extern const pm_char STR_BATTERYWARNING[];
481 extern const pm_char STR_INACTIVITYALARM[];
482 extern const pm_char STR_MEMORYWARNING[];
483 extern const pm_char STR_ALARMWARNING[];
484 extern const pm_char STR_RSSISHUTDOWNALARM[];
485 extern const pm_char STR_MODEL_STILL_POWERED[];
486 extern const pm_char STR_PRESS_ENTER_TO_CONFIRM[];
487 extern const pm_char STR_RENAVIG[];
488 extern const pm_char STR_THROTTLEREVERSE[];
489 extern const pm_char STR_TIMER_NAME[];
490 extern const pm_char STR_MINUTEBEEP[];
491 extern const pm_char STR_BEEPCOUNTDOWN[];
492 extern const pm_char STR_PERSISTENT[];
493 extern const pm_char STR_BACKLIGHT_LABEL[];
494 extern const pm_char STR_BLDELAY[];
495 #if defined(PWM_BACKLIGHT) || defined(PCBHORUS)
496 extern const pm_char STR_BLONBRIGHTNESS[];
497 extern const pm_char STR_BLOFFBRIGHTNESS[];
498 #endif
499 extern const pm_char STR_SPLASHSCREEN[];
500 extern const pm_char STR_THROTTLEWARNING[];
501 extern const pm_char STR_SWITCHWARNING[];
502 extern const pm_char STR_POTWARNINGSTATE[];
503 extern const pm_char STR_POTWARNING[];
504 extern const pm_char STR_SLIDERWARNING[];
505 extern const pm_char STR_TIMEZONE[];
506 extern const pm_char STR_ADJUST_RTC[];
507 extern const pm_char STR_GPS[];
508 extern const pm_char STR_GPSCOORD[];
509 extern const pm_char STR_VARIO[];
510 extern const pm_char STR_PITCH_AT_ZERO[];
511 extern const pm_char STR_PITCH_AT_MAX[];
512 extern const pm_char STR_REPEAT_AT_ZERO[];
513 extern const pm_char STR_RXCHANNELORD[];
514 extern const pm_char STR_STICKS[];
515 extern const pm_char STR_POTS[];
516 extern const pm_char STR_SWITCHES[];
517 extern const pm_char STR_SWITCHES_DELAY[];
518 extern const pm_char STR_SLAVE[];
519 extern const pm_char STR_MODESRC[];
520 extern const pm_char STR_MULTIPLIER[];
521 #define LEN_MULTIPLIER PSIZE(TR_MULTIPLIER)
522 extern const pm_char STR_CAL[];
523 extern const pm_char STR_VTRIM[];
524 extern const pm_char STR_BG[];
525 extern const pm_char STR_MENUTOSTART[];
526 extern const pm_char STR_SETMIDPOINT[];
527 extern const pm_char STR_MOVESTICKSPOTS[];
528 extern const pm_char STR_RXBATT[];
529 extern const pm_char STR_TX[];
530 #define STR_RX (STR_TX+OFS_RX)
531 extern const pm_char STR_ACCEL[];
532 extern const pm_char STR_NODATA[];
533 extern const pm_char STR_TOTTM1TM2THRTHP[];
534 extern const pm_char STR_TMR1LATMAXUS[];
535 extern const pm_char STR_TMR1LATMINUS[];
536 extern const pm_char STR_TMR1JITTERUS[];
537 extern const pm_char STR_TMIXMAXMS[];
538 extern const pm_char STR_FREESTACKMINB[];
539 extern const pm_char STR_MENUTORESET[];
540 extern const pm_char STR_PPM_TRAINER[];
541 extern const pm_char STR_CH[];
542 extern const pm_char STR_MODEL[];
543 extern const pm_char STR_FP[];
544 #if defined(CPUARM)
545 extern const pm_char STR_MIX[];
546 #endif
547 extern const pm_char STR_EEPROMLOWMEM[];
548 extern const pm_char STR_ALERT[];
549 extern const pm_char STR_PRESSANYKEYTOSKIP[];
550 extern const pm_char STR_THROTTLENOTIDLE[];
551 extern const pm_char STR_ALARMSDISABLED[];
552 extern const pm_char STR_PRESSANYKEY[];
553 #define LEN_PRESSANYKEY PSIZE(TR_PRESSANYKEY)
554 extern const pm_char STR_BAD_RADIO_DATA[];
555 extern const pm_char STR_STORAGE_FORMAT[];
556 extern const pm_char STR_EEPROMOVERFLOW[];
557 extern const pm_char STR_TRIMS2OFFSETS[];
558 extern const pm_char STR_MENURADIOSETUP[];
559 extern const pm_char STR_MENUDATEANDTIME[];
560 extern const pm_char STR_MENUTRAINER[];
561 extern const pm_char STR_MENUSPECIALFUNCS[];
562 extern const pm_char STR_MENUVERSION[];
563 extern const pm_char STR_MENU_RADIO_SWITCHES[];
564 extern const pm_char STR_MENU_RADIO_ANALOGS[];
565 extern const pm_char STR_MENUCALIBRATION[];
566 extern const pm_char STR_MENUMODELSEL[];
567 extern const pm_char STR_MENUSETUP[];
568 extern const pm_char STR_MENUFLIGHTMODE[];
569 extern const pm_char STR_MENUFLIGHTMODES[];
570 extern const pm_char STR_MENUHELISETUP[];
571 extern const pm_char STR_MENUINPUTS[];
572 extern const pm_char STR_MENULIMITS[];
573 extern const pm_char STR_MENUCURVES[];
574 extern const pm_char STR_MENUCURVE[];
575 extern const pm_char STR_MENULOGICALSWITCH[];
576 extern const pm_char STR_MENULOGICALSWITCHES[];
577 extern const pm_char STR_MENUCUSTOMFUNC[];
578 extern const pm_char STR_MENUCUSTOMSCRIPTS[];
579 extern const pm_char STR_MENUTELEMETRY[];
580 extern const pm_char STR_MENUTEMPLATES[];
581 extern const pm_char STR_MENUSTAT[];
582 extern const pm_char STR_MENUDEBUG[];
583 extern const char * const STR_MONITOR_CHANNELS[];
584 extern const pm_char STR_MONITOR_SWITCHES[];
585 extern const pm_char STR_MONITOR_OUTPUT_DESC[];
586 extern const pm_char STR_MONITOR_MIXER_DESC[];
587 extern const pm_char STR_MENUGLOBALVARS[];
588 extern const pm_char STR_INVERT_THR[];
589 extern const pm_char STR_AND_SWITCH[];
590 extern const pm_char STR_SF[];
591 extern const pm_char STR_GF[];
593 #if defined(FAS_OFFSET) || !defined(CPUM64)
594 extern const pm_char STR_FAS_OFFSET[];
595 #endif
597 #if defined(MULTIMODULE)
598 extern const pm_char STR_MULTI_CUSTOM[];
599 extern const pm_char STR_MULTI_OPTION[];
600 extern const pm_char STR_MULTI_VIDFREQ[];
601 extern const pm_char STR_MULTI_RFPOWER[];
602 extern const pm_char STR_MULTI_RFTUNE[];
603 extern const pm_char STR_MULTI_TELEMETRY[];
604 extern const pm_char STR_MULTI_AUTOBIND[];
605 extern const pm_char STR_MULTI_DSM_AUTODTECT[];
606 extern const pm_char STR_MULTI_LOWPOWER[];
607 extern const pm_char STR_MODULE_NO_SERIAL_MODE[];
608 extern const pm_char STR_MODULE_NO_INPUT[];
609 extern const pm_char STR_MODULE_NO_TELEMETRY[];
610 extern const pm_char STR_MODULE_BINDING[];
611 extern const pm_char STR_PROTOCOL_INVALID[];
612 extern const pm_char STR_MODULE_STATUS[];
613 extern const pm_char STR_MULTI_SERVOFREQ[];
614 #if LCD_W < 212
615 extern const pm_char STR_SUBTYPE[];
616 #endif
617 #endif
618 #if defined(DSM2) || defined(PXX)
619 extern const pm_char STR_RECEIVER_NUM[];
620 extern const pm_char STR_RECEIVER[];
621 #endif
623 #if defined(PXX) || defined(CPUARM)
624 extern const pm_char STR_SYNCMENU[];
625 extern const pm_char STR_INTERNALRF[];
626 extern const pm_char STR_EXTERNALRF[];
627 extern const pm_char STR_SPORT_OUT[];
628 extern const pm_char STR_FAILSAFE[];
629 extern const pm_char STR_FAILSAFESET[];
630 extern const pm_char STR_HOLD[];
631 extern const pm_char STR_NONE[];
632 extern const pm_char STR_MENUSENSOR[];
633 extern const pm_char STR_SENSOR[];
634 extern const pm_char STR_COUNTRYCODE[];
635 extern const pm_char STR_DISABLE_INTERNAL[];
636 #endif
638 #if defined(TELEMETRY_FRSKY)
639 extern const pm_char STR_LIMIT[];
640 #endif
642 #ifdef FRSKY_HUB
643 extern const pm_char STR_MINRSSI[];
644 extern const pm_char STR_LATITUDE[];
645 extern const pm_char STR_LONGITUDE[];
646 #endif
648 #if defined(CPUARM) || defined(CPUM2560)
649 extern const pm_char STR_SHUTDOWN[];
650 extern const pm_char STR_SAVEMODEL[];
651 #endif
653 #if defined(PCBX9E)
654 extern const pm_char STR_POWEROFF[];
655 #endif
657 extern const pm_char STR_BATT_CALIB[];
659 #if defined(CPUARM) || defined(TELEMETRY_FRSKY)
660 extern const pm_char STR_VOLTAGE[];
661 extern const pm_char STR_CURRENT[];
662 #endif
664 #if defined(CPUARM)
665 extern const pm_char STR_CURRENT_CALIB[];
666 extern const pm_char STR_UNITSSYSTEM[];
667 extern const pm_char STR_VOICELANG[];
668 extern const pm_char STR_MODELIDUSED[];
669 extern const pm_char STR_BEEP_VOLUME[];
670 extern const pm_char STR_WAV_VOLUME[];
671 extern const pm_char STR_BG_VOLUME[];
672 extern const pm_char STR_PERSISTENT_MAH[];
673 #endif
675 #if defined(PCBSKY9X)
676 #define LEN_CALIB_FIELDS (PSIZE(TR_BATT_CALIB) > PSIZE(TR_CURRENT_CALIB) ? PSIZE(TR_BATT_CALIB) : PSIZE(TR_CURRENT_CALIB))
677 #else
678 #define LEN_CALIB_FIELDS PSIZE(TR_BATT_CALIB)
679 #endif
681 #if defined(NAVIGATION_MENUS)
682 extern const pm_char STR_SELECT_MODEL[];
683 extern const pm_char STR_CREATE_CATEGORY[];
684 extern const pm_char STR_RENAME_CATEGORY[];
685 extern const pm_char STR_DELETE_CATEGORY[];
686 extern const pm_char STR_CREATE_MODEL[];
687 extern const pm_char STR_DUPLICATE_MODEL[];
688 extern const pm_char STR_COPY_MODEL[];
689 extern const pm_char STR_MOVE_MODEL[];
690 extern const pm_char STR_DELETE_MODEL[];
691 extern const pm_char STR_EDIT[];
692 extern const pm_char STR_INSERT_BEFORE[];
693 extern const pm_char STR_INSERT_AFTER[];
694 extern const pm_char STR_COPY[];
695 extern const pm_char STR_MOVE[];
696 extern const pm_char STR_PASTE[];
697 extern const pm_char STR_INSERT[];
698 extern const pm_char STR_DELETE[];
699 extern const pm_char STR_RESET_FLIGHT[];
700 extern const pm_char STR_RESET_TIMER1[];
701 extern const pm_char STR_RESET_TIMER2[];
702 extern const pm_char STR_RESET_TIMER3[];
703 extern const pm_char STR_RESET_TELEMETRY[];
704 extern const pm_char STR_STATISTICS[];
705 extern const pm_char STR_ABOUT_US[];
706 extern const pm_char STR_SETUP_SCREENS[];
707 extern const pm_char STR_MONITOR_SCREENS[];
708 #endif
710 extern const pm_char STR_RESET_BTN[];
712 #if defined(SDCARD)
713 extern const pm_char STR_BACKUP_MODEL[];
714 extern const pm_char STR_RESTORE_MODEL[];
715 extern const pm_char STR_DELETE_ERROR[];
716 extern const pm_char STR_SDCARD_ERROR[];
717 extern const pm_char STR_NO_SDCARD[];
718 extern const pm_char STR_SDCARD_FULL[];
719 extern const pm_char STR_INCOMPATIBLE[];
720 extern const pm_char STR_LOGS_PATH[];
721 extern const pm_char STR_LOGS_EXT[];
722 extern const pm_char STR_MODELS_PATH[];
723 extern const pm_char STR_MODELS_EXT[];
724 #define STR_UPDATE_LIST STR_DELAYDOWN
725 #endif
727 extern const pm_char STR_CAT_NOT_EMPTY[];
728 extern const pm_char STR_WARNING[];
729 extern const pm_char STR_STORAGE_WARNING[];
730 extern const pm_char STR_EEPROM_CONVERTING[];
731 extern const pm_char STR_THROTTLEWARN[];
732 extern const pm_char STR_ALARMSWARN[];
733 extern const pm_char STR_SWITCHWARN[];
734 extern const pm_char STR_FAILSAFEWARN[];
735 extern const pm_char STR_WRONG_SDCARDVERSION[];
736 extern const pm_char STR_WRONG_PCBREV[];
737 extern const pm_char STR_EMERGENCY_MODE[];
738 extern const pm_char STR_PCBREV_ERROR[];
739 extern const pm_char STR_NO_FAILSAFE[];
740 extern const pm_char STR_KEYSTUCK[];
742 extern const pm_char STR_SPEAKER_VOLUME[];
743 extern const pm_char STR_LCD[];
744 extern const pm_char STR_BRIGHTNESS[];
745 extern const pm_char STR_CPU_TEMP[];
746 extern const pm_char STR_CPU_CURRENT[];
747 extern const pm_char STR_CPU_MAH[];
748 extern const pm_char STR_COPROC[];
749 extern const pm_char STR_COPROC_TEMP[];
750 extern const pm_char STR_CAPAWARNING[];
751 extern const pm_char STR_TEMPWARNING[];
752 extern const pm_char STR_FUNC[];
753 extern const pm_char STR_V1[];
754 extern const pm_char STR_V2[];
755 extern const pm_char STR_DURATION[];
756 extern const pm_char STR_DELAY[];
757 extern const pm_char STR_SD_CARD[];
758 extern const pm_char STR_SDHC_CARD[];
759 extern const pm_char STR_NO_SOUNDS_ON_SD[];
760 extern const pm_char STR_NO_MODELS_ON_SD[];
761 extern const pm_char STR_NO_BITMAPS_ON_SD[];
762 extern const pm_char STR_NO_SCRIPTS_ON_SD[];
763 extern const pm_char STR_SCRIPT_SYNTAX_ERROR[];
764 extern const pm_char STR_SCRIPT_PANIC[];
765 extern const pm_char STR_SCRIPT_KILLED[];
766 extern const pm_char STR_SCRIPT_ERROR[];
767 extern const pm_char STR_PLAY_FILE[];
768 extern const pm_char STR_ASSIGN_BITMAP[];
769 extern const pm_char STR_EXECUTE_FILE[];
770 extern const pm_char STR_DELETE_FILE[];
771 extern const pm_char STR_COPY_FILE[];
772 extern const pm_char STR_RENAME_FILE[];
773 extern const pm_char STR_REMOVED[];
774 extern const pm_char STR_SD_INFO[];
775 extern const pm_char STR_SD_FORMAT[];
776 extern const pm_char STR_NA[];
777 extern const pm_char STR_HARDWARE[];
778 extern const pm_char STR_FORMATTING[];
779 extern const pm_char STR_TEMP_CALIB[];
780 extern const pm_char STR_TIME[];
781 extern const pm_char STR_BAUDRATE[];
782 extern const pm_char STR_SD_INFO_TITLE[];
783 extern const pm_char STR_SD_TYPE[];
784 extern const pm_char STR_SD_SPEED[];
785 extern const pm_char STR_SD_SECTORS[];
786 extern const pm_char STR_SD_SIZE[];
787 extern const pm_char STR_TYPE[];
788 extern const pm_char STR_GLOBAL_VARS[];
789 extern const pm_char STR_GVARS[];
790 extern const pm_char STR_GLOBAL_VAR[];
791 extern const pm_char STR_OWN[];
792 extern const pm_char STR_ROTARY_ENCODER[];
793 extern const pm_char STR_DATE[];
794 extern const pm_char STR_CHANNELS_MONITOR[];
795 extern const pm_char STR_MIXERS_MONITOR[];
796 extern const pm_char STR_PATH_TOO_LONG[];
797 extern const pm_char STR_VIEW_TEXT[];
798 extern const pm_char STR_FLASH_BOOTLOADER[];
799 extern const pm_char STR_FLASH_EXTERNAL_DEVICE[];
800 extern const pm_char STR_FLASH_INTERNAL_MODULE[];
801 extern const pm_char STR_FIRMWARE_UPDATE_ERROR[];
802 extern const pm_char STR_WRITING[];
803 extern const pm_char STR_CONFIRM_FORMAT[];
804 extern const pm_char STR_EEBACKUP[];
805 extern const pm_char STR_FACTORYRESET[];
806 extern const pm_char STR_CONFIRMRESET[];
807 extern const pm_char STR_TOO_MANY_LUA_SCRIPTS[];
808 extern const pm_char STR_BLCOLOR[];
810 #if defined(CPUARM) && defined(VOICE)
811 struct LanguagePack {
812 const char * id;
813 const char * name;
814 void (*playNumber)(getvalue_t number, uint8_t unit, uint8_t flags, uint8_t id);
815 void (*playDuration)(int seconds, uint8_t flags, uint8_t id);
818 extern const LanguagePack * currentLanguagePack;
819 extern uint8_t currentLanguagePackIdx;
821 extern const LanguagePack czLanguagePack;
822 extern const LanguagePack enLanguagePack;
823 extern const LanguagePack esLanguagePack;
824 extern const LanguagePack frLanguagePack;
825 extern const LanguagePack deLanguagePack;
826 extern const LanguagePack itLanguagePack;
827 extern const LanguagePack plLanguagePack;
828 extern const LanguagePack ptLanguagePack;
829 extern const LanguagePack skLanguagePack;
830 extern const LanguagePack seLanguagePack;
831 extern const LanguagePack huLanguagePack;
832 extern const LanguagePack * const languagePacks[];
833 #if defined(LANGUAGE_PACKS_DEFINITION)
834 const LanguagePack * const languagePacks[] = {
835 // alphabetical order
836 &czLanguagePack,
837 &deLanguagePack,
838 &enLanguagePack,
839 &esLanguagePack,
840 &frLanguagePack,
841 &huLanguagePack,
842 &itLanguagePack,
843 &plLanguagePack,
844 &ptLanguagePack,
845 &seLanguagePack,
846 &skLanguagePack,
847 NULL
849 #endif
850 #if defined(SIMU)
851 #define LANGUAGE_PACK_DECLARE(lng, name) const LanguagePack lng ## LanguagePack = { #lng, name, lng ## _ ## playNumber, lng ## _ ## playDuration }
852 #else
853 #define LANGUAGE_PACK_DECLARE(lng, name) extern const LanguagePack lng ## LanguagePack = { #lng, name, lng ## _ ## playNumber, lng ## _ ## playDuration }
854 #endif
855 #define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name) LANGUAGE_PACK_DECLARE(lng, name); const LanguagePack * currentLanguagePack = & lng ## LanguagePack; uint8_t currentLanguagePackIdx
856 inline PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t flags) { currentLanguagePack->playNumber(number, unit, flags, id); }
857 inline PLAY_FUNCTION(playDuration, int seconds, uint8_t flags) { currentLanguagePack->playDuration(seconds, flags, id); }
858 #elif defined(VOICE)
859 PLAY_FUNCTION(playNumber, getvalue_t number, uint8_t unit, uint8_t att);
860 PLAY_FUNCTION(playDuration, int seconds);
861 #define LANGUAGE_PACK_DECLARE(lng, name)
862 #define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name)
863 #else
864 #define LANGUAGE_PACK_DECLARE(lng, name)
865 #define LANGUAGE_PACK_DECLARE_DEFAULT(lng, name)
866 #endif
868 #if defined(CPUARM)
869 extern const pm_char STR_MODELNAME[];
870 extern const pm_char STR_PHASENAME[];
871 extern const pm_char STR_MIXNAME[];
872 extern const pm_char STR_INPUTNAME[];
873 extern const pm_char STR_EXPONAME[];
874 #else
875 #define STR_MODELNAME STR_NAME
876 #define STR_PHASENAME STR_NAME
877 #define STR_MIXNAME STR_NAME
878 #define STR_EXPONAME STR_NAME
879 #endif
881 #if defined(COLORLCD)
882 #define TR_PHASES_HEADERS { TR_PHASES_HEADERS_NAME, TR_PHASES_HEADERS_SW, TR_PHASES_HEADERS_RUD_TRIM, TR_PHASES_HEADERS_ELE_TRIM, TR_PHASES_HEADERS_THT_TRIM, TR_PHASES_HEADERS_AIL_TRIM, TR_PHASES_HEADERS_CH5_TRIM, TR_PHASES_HEADERS_CH6_TRIM, TR_PHASES_HEADERS_FAD_IN, TR_PHASES_HEADERS_FAD_OUT }
883 #elif defined(PCBTARANIS)
884 #define TR_PHASES_HEADERS { HINT(TR_PHASES_HEADERS_NAME), HINT(TR_PHASES_HEADERS_SW), HINT(TR_PHASES_HEADERS_RUD_TRIM), HINT(TR_PHASES_HEADERS_ELE_TRIM), HINT(TR_PHASES_HEADERS_THT_TRIM), HINT(TR_PHASES_HEADERS_AIL_TRIM), HINT(TR_PHASES_HEADERS_FAD_IN), HINT(TR_PHASES_HEADERS_FAD_OUT) }
885 #endif
887 #define TR_LIMITS_HEADERS { HINT(TR_LIMITS_HEADERS_NAME), HINT(TR_LIMITS_HEADERS_SUBTRIM), HINT(TR_LIMITS_HEADERS_MIN), HINT(TR_LIMITS_HEADERS_MAX), HINT(TR_LIMITS_HEADERS_DIRECTION), HINT(TR_LIMITS_HEADERS_CURVE), HINT(TR_LIMITS_HEADERS_PPMCENTER), HINT(TR_LIMITS_HEADERS_SUBTRIMMODE) }
888 #define TR_LSW_HEADERS { HINT(TR_LSW_HEADERS_FUNCTION), HINT(TR_LSW_HEADERS_V1), HINT(TR_LSW_HEADERS_V2), HINT(TR_LSW_HEADERS_V2), HINT(TR_LSW_HEADERS_ANDSW), HINT(TR_LSW_HEADERS_DURATION), HINT(TR_LSW_HEADERS_DELAY) }
889 #define TR_GVAR_HEADERS { HINT(TR_GVAR_HEADERS_NAME), HINT(TR_GVAR_HEADERS_FM0), HINT(TR_GVAR_HEADERS_FM1), HINT(TR_GVAR_HEADERS_FM2), HINT(TR_GVAR_HEADERS_FM3), HINT(TR_GVAR_HEADERS_FM4), HINT(TR_GVAR_HEADERS_FM5), HINT(TR_GVAR_HEADERS_FM6), HINT(TR_GVAR_HEADERS_FM7), HINT(TR_GVAR_HEADERS_FM8) }
891 #if LCD_W >= 212
892 extern const char * const STR_PHASES_HEADERS[];
893 extern const char * const STR_LIMITS_HEADERS[];
894 extern const char * const STR_LSW_HEADERS[];
895 extern const char * const STR_LSW_DESCRIPTIONS[];
896 extern const char * const STR_GVAR_HEADERS[];
897 #endif
899 #if defined(CPUARM)
900 extern const pm_char STR_TRAINER[];
901 extern const pm_char STR_MODULE_BIND[];
902 extern const pm_char STR_BINDING_1_8_TELEM_ON[];
903 extern const pm_char STR_BINDING_1_8_TELEM_OFF[];
904 extern const pm_char STR_BINDING_9_16_TELEM_ON[];
905 extern const pm_char STR_BINDING_9_16_TELEM_OFF[];
906 extern const pm_char STR_CHANNELRANGE[];
907 extern const pm_char STR_ANTENNASELECTION[];
908 extern const pm_char STR_ANTENNACONFIRM1[];
909 extern const pm_char STR_ANTENNACONFIRM2[];
910 extern const pm_char STR_SET[];
911 extern const pm_char STR_PREFLIGHT[];
912 extern const pm_char STR_CHECKLIST[];
913 extern const pm_char STR_VIEW_NOTES[];
914 extern const pm_char STR_MODEL_SELECT[];
915 extern const pm_char STR_RESET_SUBMENU[];
916 extern const pm_char STR_LOWALARM[];
917 extern const pm_char STR_CRITICALALARM[];
918 extern const pm_char STR_RSSIALARM_WARN[];
919 extern const pm_char STR_NO_RSSIALARM[];
920 extern const pm_char STR_DISABLE_ALARM[];
921 extern const pm_char STR_TELEMETRY_TYPE[];
922 extern const pm_char STR_TELEMETRY_SENSORS[];
923 extern const pm_char STR_VALUE[];
924 extern const pm_char STR_TOPLCDTIMER[];
925 extern const pm_char STR_UNIT[] PROGMEM;
926 extern const pm_char STR_TELEMETRY_NEWSENSOR[];
927 extern const pm_char STR_ID[];
928 extern const pm_char STR_PRECISION[];
929 extern const pm_char STR_RATIO[];
930 extern const pm_char STR_FORMULA[];
931 extern const pm_char STR_CELLINDEX[];
932 extern const pm_char STR_LOGS[];
933 extern const pm_char STR_OPTIONS[];
934 extern const pm_char STR_ALTSENSOR[];
935 extern const pm_char STR_CELLSENSOR[];
936 extern const pm_char STR_GPSSENSOR[];
937 extern const pm_char STR_CURRENTSENSOR[];
938 extern const pm_char STR_AUTOOFFSET[];
939 extern const pm_char STR_ONLYPOSITIVE[];
940 extern const pm_char STR_FILTER[];
941 extern const pm_char STR_TELEMETRYFULL[];
942 extern const pm_char STR_SERVOS_OK[];
943 extern const pm_char STR_SERVOS_KO[];
944 extern const pm_char STR_INVERTED_SERIAL[];
945 extern const pm_char STR_IGNORE_INSTANCE[];
946 extern const pm_char STR_DISCOVER_SENSORS[];
947 extern const pm_char STR_STOP_DISCOVER_SENSORS[];
948 extern const pm_char STR_DELETE_ALL_SENSORS[];
949 extern const pm_char STR_CONFIRMDELETE[];
950 extern const pm_char STR_SELECT_WIDGET[];
951 extern const pm_char STR_REMOVE_WIDGET[];
952 extern const pm_char STR_WIDGET_SETTINGS[];
953 extern const pm_char STR_REMOVE_SCREEN[];
954 extern const pm_char STR_SETUP_WIDGETS[];
955 extern const pm_char STR_USER_INTERFACE[];
956 extern const pm_char STR_THEME[];
957 extern const pm_char STR_SETUP[];
958 extern const pm_char STR_MAINVIEWX[];
959 extern const pm_char STR_LAYOUT[];
960 extern const pm_char STR_ADDMAINVIEW[];
961 extern const pm_char STR_BACKGROUND_COLOR[];
962 extern const pm_char STR_MAIN_COLOR[];
963 #endif
965 #if defined(CPUARM)
966 extern const pm_char STR_BYTES[];
967 extern const pm_char STR_ANTENNAPROBLEM[];
968 extern const pm_char STR_MODULE[];
969 extern const pm_char STR_ENABLE_POPUP[];
970 extern const pm_char STR_DISABLE_POPUP[];
971 extern const pm_char STR_POPUP[];
972 extern const pm_char STR_MIN[];
973 extern const pm_char STR_MAX[];
974 extern const pm_char STR_CURVE_PRESET[];
975 extern const pm_char STR_PRESET[];
976 extern const pm_char STR_MIRROR[];
977 extern const pm_char STR_CLEAR[];
978 extern const pm_char STR_RESET[];
979 extern const pm_char STR_COUNT[];
980 extern const pm_char STR_PT[];
981 extern const pm_char STR_PTS[];
982 extern const pm_char STR_SMOOTH[];
983 extern const pm_char STR_COPY_STICKS_TO_OFS[];
984 extern const pm_char STR_COPY_TRIMS_TO_OFS[];
985 extern const pm_char STR_INCDEC[];
986 extern const pm_char STR_GLOBALVAR[];
987 extern const pm_char STR_MIXSOURCE[];
988 extern const pm_char STR_CONSTANT[];
989 extern const pm_char STR_TOP_BAR[];
990 extern const pm_char STR_ALTITUDE[];
991 extern const pm_char STR_SCALE[];
992 extern const pm_char STR_VIEW_CHANNELS[];
993 extern const pm_char STR_POTWARNING[];
994 extern const pm_char STR_UART3MODE[];
995 extern const pm_char STR_THROTTLE_LABEL[];
996 extern const pm_char STR_SCRIPT[];
997 extern const pm_char STR_INPUTS[];
998 extern const pm_char STR_OUTPUTS[];
999 extern const pm_char STR_MENU_INPUTS[];
1000 extern const pm_char STR_MENU_LUA[];
1001 extern const pm_char STR_MENU_STICKS[];
1002 extern const pm_char STR_MENU_POTS[];
1003 extern const pm_char STR_MENU_MAX[];
1004 extern const pm_char STR_MENU_HELI[];
1005 extern const pm_char STR_MENU_TRIMS[];
1006 extern const pm_char STR_MENU_SWITCHES[];
1007 extern const pm_char STR_MENU_LOGICAL_SWITCHES[];
1008 extern const pm_char STR_MENU_TRAINER[];
1009 extern const pm_char STR_MENU_CHANNELS[];
1010 extern const pm_char STR_MENU_GVARS[];
1011 extern const pm_char STR_MENU_TELEMETRY[];
1012 extern const pm_char STR_MENU_DISPLAY[];
1013 extern const pm_char STR_MENU_OTHER[];
1014 extern const pm_char STR_MENU_INVERT[];
1015 extern const pm_char STR_JITTER_FILTER[];
1016 #endif
1018 #if MENUS_LOCK == 1
1019 extern const pm_char STR_UNLOCKED[];
1020 extern const pm_char STR_MODS_FORBIDDEN[];
1021 #endif
1023 #if defined(PCBTARANIS) || defined(DSM2)
1024 extern const pm_char STR_MODULE_RANGE[];
1025 #endif
1027 #if defined(TELEMETRY_MAVLINK)
1028 extern const pm_char STR_MAVLINK_RC_RSSI_SCALE_LABEL[];
1029 extern const pm_char STR_MAVLINK_PC_RSSI_EN_LABEL[];
1030 extern const pm_char STR_MAVMENUSETUP_TITLE[];
1031 extern const pm_char STR_MAVLINK_BAUD_LABEL[];
1032 extern const pm_char STR_MAVLINK_INFOS[];
1033 extern const pm_char STR_MAVLINK_MODE[];
1034 extern const pm_char STR_MAVLINK_CUR_MODE[];
1035 extern const pm_char STR_MAVLINK_ARMED[];
1036 extern const pm_char STR_MAVLINK_BAT_MENU_TITLE[];
1037 extern const pm_char STR_MAVLINK_BATTERY_LABEL[];
1038 extern const pm_char STR_MAVLINK_RC_RSSI_LABEL[];
1039 extern const pm_char STR_MAVLINK_PC_RSSI_LABEL[];
1040 extern const pm_char STR_MAVLINK_NAV_MENU_TITLE[];
1041 extern const pm_char STR_MAVLINK_COURSE[];
1042 extern const pm_char STR_MAVLINK_HEADING[];
1043 extern const pm_char STR_MAVLINK_BEARING[];
1044 extern const pm_char STR_MAVLINK_ALTITUDE[];
1045 extern const pm_char STR_MAVLINK_GPS[];
1046 extern const pm_char STR_MAVLINK_NO_FIX[];
1047 extern const pm_char STR_MAVLINK_SAT[];
1048 extern const pm_char STR_MAVLINK_HDOP[];
1049 extern const pm_char STR_MAVLINK_LAT[];
1050 extern const pm_char STR_MAVLINK_LON[];
1051 #endif
1053 #if !defined(CPUM64)
1054 extern const pm_char STR_ABOUTUS[];
1055 extern const pm_char STR_ABOUT_OPENTX_1[];
1056 extern const pm_char STR_ABOUT_OPENTX_2[];
1057 extern const pm_char STR_ABOUT_OPENTX_3[];
1058 extern const pm_char STR_ABOUT_OPENTX_4[];
1059 extern const pm_char STR_ABOUT_OPENTX_5[];
1061 extern const pm_char STR_ABOUT_BERTRAND_1[];
1062 extern const pm_char STR_ABOUT_BERTRAND_2[];
1063 extern const pm_char STR_ABOUT_BERTRAND_3[];
1065 extern const pm_char STR_ABOUT_MIKE_1[];
1066 extern const pm_char STR_ABOUT_MIKE_2[];
1067 extern const pm_char STR_ABOUT_MIKE_3[];
1068 extern const pm_char STR_ABOUT_MIKE_4[];
1070 extern const pm_char STR_ABOUT_ROMOLO_1[];
1071 extern const pm_char STR_ABOUT_ROMOLO_2[];
1072 extern const pm_char STR_ABOUT_ROMOLO_3[];
1074 extern const pm_char STR_ABOUT_ANDRE_1[];
1075 extern const pm_char STR_ABOUT_ANDRE_2[];
1076 extern const pm_char STR_ABOUT_ANDRE_3[];
1078 extern const pm_char STR_ABOUT_ROB_1[];
1079 extern const pm_char STR_ABOUT_ROB_2[];
1081 extern const pm_char STR_ABOUT_MARTIN_1[];
1082 extern const pm_char STR_ABOUT_MARTIN_2[];
1084 extern const pm_char STR_ABOUT_KJELL_1[];
1085 extern const pm_char STR_ABOUT_KJELL_2[];
1086 extern const pm_char STR_ABOUT_KJELL_3[];
1087 extern const pm_char STR_ABOUT_KJELL_4[];
1089 extern const pm_char STR_ABOUT_HARDWARE_1[];
1090 extern const pm_char STR_ABOUT_HARDWARE_2[];
1091 extern const pm_char STR_ABOUT_HARDWARE_3[];
1093 extern const pm_char STR_ABOUT_PARENTS_1[];
1094 extern const pm_char STR_ABOUT_PARENTS_2[];
1095 extern const pm_char STR_ABOUT_PARENTS_3[];
1096 extern const pm_char STR_ABOUT_PARENTS_4[];
1097 #endif
1099 #define CHR_SHORT TR_CHR_SHORT
1100 #define CHR_LONG TR_CHR_LONG
1101 #define CHR_TOGGLE TR_CHR_TOGGLE
1102 #define CHR_HOUR TR_CHR_HOUR
1103 #define CHR_INPUT TR_CHR_INPUT
1105 #endif // _TRANSLATIONS_H_