ScummVM API documentation
langtext.h
1/* ScummVM - Graphic Adventure Engine
2*
3* ScummVM is the legal property of its developers, whose names
4* are too numerous to list here. Please refer to the COPYRIGHT
5* file distributed with this source distribution.
6*
7* This program is free software: you can redistribute it and/or modify
8* it under the terms of the GNU General Public License as published by
9* the Free Software Foundation, either version 3 of the License, or
10* (at your option) any later version.
11*
12* This program is distributed in the hope that it will be useful,
13* but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15* GNU General Public License for more details.
16*
17* You should have received a copy of the GNU General Public License
18* along with this program. If not, see <http://www.gnu.org/licenses/>.
19*
20*/
21
22#ifndef DARKSEED_LANGTEXT_H
23#define DARKSEED_LANGTEXT_H
24
25#include "common/language.h"
26
27namespace Darkseed {
28
29enum class KoreanObjectSuffixType {
30 None,
31 Object,
32 Topic,
33 Linking,
34 Location
35};
36
37struct I18nText {
38 const char *en;
39 const char *es;
40 const char *fr;
41 const char *de;
42 const char *ko;
43 const char *zh;
44};
45
47 int x;
48 int y;
49 const char *text;
50};
51
53 const TextWithPosition en;
54 const TextWithPosition es;
55 const TextWithPosition fr;
56 const TextWithPosition de;
57 const TextWithPosition ko;
58 const TextWithPosition zh;
59};
60
61Common::U32String getI18NText(const I18nText &text);
62const TextWithPosition &getI18NTextWithPosition(const I18NTextWithPosition &i18nTextWithPosition);
63
64Common::U32String convertToU32String(const char *text, Common::Language language);
65
66Common::U32String formatInjectStrings(const Common::u32char_type_t *format, ...);
67
68constexpr I18nText kI18N_CarKeysIgnitionText = {
69 "You see the car keys in the ignition.",
70 "VES LAS LLAVES DEL COCHE EN EL CONTACTO.",
71 "VOUS VOYEZ LES CLEFS DE LA VOTTURE DAUS LE STARTER.",
72 "DU SIEHSTDIE AUTOSCHLUSSEL IM ANLASSER.",
73 "\xb8\x61\x95\xb7\xc0\x61\x20\xb5\x69\xae\x41\x88\x61\x20\xb7\xa1\x8b\x61\x93\xa1\xad\x65\xb5\x41\x20\x8d\xb9\xd1\x61\xb7\xb6\x93\x65\x88\xf5\xb7\xa1\x20\xa5\xa1\xb7\xb3\x93\xa1\x94\x61\x2e",
74 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46\xa8\xae\xc6\x5f\xb0\xcd\xa6\x62\xc2\x49\xa4\xf5\xb6\x7d\xc3\xf6\xa4\x57\xa1\x43"
75};
76
77constexpr I18nText kI18N_YouSeeIronBarsText = {
78 "You see the iron bars of your cell.",
79 "VES LAS BARRAS DE HIERRO DE TU CELDA.",
80 "VOUS VOYEZ LES BARREAUX DE FER DE VOTRE CELLULE.",
81 "DU SIEHST DIE EISENSTANGEN IN DER ZELLE.",
82 "\x88\x71\xa4\x77\xb7\x81\x20\xb8\x61\xa2\x89\xae\x41\xc9\xb7\x20\xb7\xb3\x93\xa1\x94\x61\x2e",
83 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46\xba\xbb\xc5\xa2\xb8\xcc\xaa\xba\xc5\x4b\xb1\xf8\xa1\x43"
84};
85
86constexpr I18nText kI18N_YouSeeDelbertText = {
87 "You see Delbert, not much to look at.",
88 "VES A DELBERT, NO HAY MUCHO QUE VER.",
89 "VOUS VOYEZ DELBERT, PAS GRAND CHOSE A VOIR.",
90 "DU SIEHST DELBERT, NICHT VIEL ZU SEHEN",
91 "\xd0\x65\x88\x61\x9d\xb3\x89\x41\x20\xb4\x81\x89\x65\x89\xc1\xb7\x81\x20\x91\xa9\xb7\xa1\xb5\x41\x20\xb5\x69\xba\x97\xd0\x61\x89\xa1\xb7\xb6\xaf\x73\x93\xa1\x94\x61\x2e",
92 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46\xc0\xb9\xba\xb8\xa7\x42\xa1\x41\xa5\x4c\xa6\xfc\xa5\x47\xa6\xa3\xb5\xdb\xb3\x72\xaa\xaf\xaa\xb1\xa1\x43"
93};
94
95constexpr I18nText kI18N_YouSeeTheClerkText = {
96 "You see the clerk.",
97 "VES AL EMPLEADO.",
98 "VOUS VOYEZ L'HOMME.",
99 "DU SIEHST DEN MANN.",
100 "\xb7\xa1\x20\x88\x61\x89\x41\xb7\x81\x20\xb8\xf1\xb6\xa5\xb7\xb3\x93\xa1\x94\x61\x2e",
101 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46\xa9\xb1\xad\xfb\xa1\x43"
102};
103
104constexpr I18nText kI18N_YouSeeTheOpenGloveBoxText = {
105 "You see the open glove box.",
106 "VES LA CAJA DE LOS GUANTES ABIERTA.",
107 "VOUS VOYEZ LA BOITE DE GANT OUVERTE.",
108 "DU SIEHST DAS OFFENE HANDSCHUHFACH.",
109 "\xb8\x77\x88\x73\xc9\xb7\xb7\xa1\x20\xb5\x69\x9d\x61\xb7\xb6\x93\x65\x88\xf5\xb7\xa1\x20\xa5\xa1\xb7\xb3\x93\xa1\x94\x61\x2e",
110 "\xa7\x41\xac\xdd\xa8\xec\xa5\xb4\xb6\x7d\xa4\x46\xaa\xba\xa4\xe2\xae\x4d\xb2\xb0\xa1\x43"
111};
112
113constexpr I18nText kI18N_youSeeTheText = {
114 "You see the %s.",
115 "VES %s.",
116 "VOUS VOYEZ %s.",
117 "DU SIEHST %s.",
118 "%s \xac\x69\xcd\x61\xa5\xb3\x93\xa1\x94\x61",
119 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46%s\xa1\x43"
120};
121
122constexpr I18nText kI18N_TheCopsIgnoreYourDemandsText = {
123 "The cops ignore your demands for attention.",
124 "LOS POLICIAS IGNORAN TUS LLAMADAS DE ATENCION.",
125 "LES FLICS IGNORENT VOTRE DEMANDE D'ATTENTION.",
126 "DIE POLIZISTEN BEACHTEN NICHT DEINE FORDERUNGEN.",
127 "\xb4\x61\xa2\x81\x9f\xa1\x20\xaf\xa5\xd1\xa1\x9f\x69\x20\xa5\xa1\x90\x81\x95\xa1\x20\x89\x77\xc0\x69\x97\x69\xb7\x65\x20\xc1\x61\x94\x61\xa5\xa9\x20\xac\x97\x88\x62\x95\xa1\x20\xd0\x61\xbb\xa1\x20\xb4\x67\x93\x65\x8a\x85\xb6\x61\x2e",
128 nullptr // Untranslated in this version
129};
130
131constexpr I18nText kI18N_ThePhoneIsRingingText = {
132 "The phone is ringing.",
133 "EL TELEFONO ESTA SONANDO.",
134 "LE TELEPHONE SONNE.",
135 "DAS TELEFON KLINGELT.",
136 "\xb8\xe5\xd1\xc1\xa5\x49\xb7\xa1\x20\xb6\x89\x9f\xb3\x93\xa1\x94\x61\x2e",
137 "\xb9\x71\xb8\xdc\xc1\x6e\xc5\x54\xb0\x5f\x2e\x0a"
138};
139
140constexpr I18nText kI18N_TheDoorbellIsRingingText = {
141 "The doorbell is ringing.",
142 "EL TIMBRE DE LA PUERTA ESTA SONANDO.",
143 "LA SONETTE DE LA PORTE SONNE.",
144 "DIE TUERKLINGEL LAEUTET.",
145 "\xd1\x65\x89\xc5\x20\xc1\xa1\xb7\xa5\xb9\xb7\xb7\xa1\x20\xb6\x89\x9f\xb3\x93\xa1\x94\x61\x2e",
146 "\xaa\xf9\xb9\x61\xc1\x6e\xc5\x54\xb0\x5f\x2e\x0a"
147};
148
149constexpr I18nText kI18N_ChooseAnItemBeforeText = {
150 "Choose an item before giving clerk more money.",
151 "ELIGE UN OBJETO ANTES DE DARLE AL EMPLEADO MAS DINERO.",
152 "CHOISISSEZ QUELQUE CHOSE AVANT DE REMETTRE L'ARGENT A VENDEUR.",
153 "SUCHE ETWAS AUS BEVOR DU DEN MANN BEZAHLST.",
154 "\xb8\xf1\xb6\xa5\xb5\x41\x89\x41\x20\x95\xa5\xb7\x69\x20\x94\xe1\x20\xba\x81\x8b\xa1\xb8\xe5\xb5\x41\x20\xa0\xe5\xb8\xe1\x20\x8a\x81\xb7\xb3\xd0\x69\x20\xa2\x89\x88\xe5\xb7\x69\x20\x89\xa1\x9f\x61\xad\x41\xb6\x61\x2e",
155 "\xad\x6e\xae\xb3\xb3\x66\xab\x7e\xab\x65\xa1\x41\xb0\x4f\xb1\x6f\xbd\xd0\xa5\xfd\xa5\x49\xbf\xfa\xb5\xb9\xa9\xb1\xad\xfb\xa1\x43"
156};
157
158constexpr I18nText kI18N_YouTouchDelbertText = {
159 "You touch Delbert...",
160 "TOCAS A DELBERT...",
161 "VOUS TOUCHEZ DELBERT.",
162 "GREIFE DELBERT AN...",
163 "\xae\x89\xb7\x69\x20\xd0\x65\xa4\xe5\x20\x8a\xa5\xd0\x81\x20\xa5\xa1\x93\x65\x88\xf5\xb7\xa1\x20\xb4\xe1\x98\xe9\x8c\x61\xb6\x61\x3f",
164 "\xa7\x41\xb8\x49\xc4\xb2\xc0\xb9\xba\xb8\xa7\x42\xa4\x40\xa4\x55\xa1\x44\xa1\x44"
165};
166
167constexpr I18nText kI18N_YouTouchTheColdIronBarsText = {
168 "You touch the cold iron bars.",
169 "TOCAS LAS FRIAS BARRAS DE HIERRO.",
170 "VOUS TOUCHEZ LES BARREAUX DE FER.",
171 "GREIFE DIE KALTEN EISEN STANGEN AN.",
172 "\xc0\x77\xac\x69\xb7\x81\x20\x88\x71\xc1\xa2\xb7\x65\x20\xb5\x62\xaf\xa1\x20\xc0\x61\x88\x73\x8a\x85\xb6\x61\x21",
173 "\xa7\x41\xba\x4e\xb5\xdb\xa6\x42\xa7\x4e\xaa\xba\xc5\x4b\xb1\xf8\xa1\x43"
174};
175
176constexpr I18nText kI18N_TheSergeantSaysNiceGunText = {
177 "The sergeant says 'Nice gun eh? It's a Browning'",
178 "EL SARGENTO DICE: 'BUENA PISTOLA, EH? ES UNA BROWNING.'",
179 "LE SERGENT DIT: BEAU REVOLVER HEIN, C'EST UN BROWNING.",
180 "DER SEARGENT SAGT 'SCHOENE PISTOLE, EH? ES IST EIN BROWNING.'",
181 "\xc1\xb7\x20\x8b\x65\xc0\xe1\xb5\x41\xac\xe1\x20\x98\xe9\xb4\xe1\xbb\xa1\xaf\xa1\xb6\x61\x21",
182 "\xc4\xb5\xa9\x78\xbb\xa1\xa1\x47\xac\x4f\xa7\xe2\xa6\x6e\xba\x6a\xa7\x63\xa1\x48\xb3\x6f\xac\x4f\xa5\xd5\xae\xd4\xb9\xe7\xa4\xe2\xba\x6a\xa9\x4f\xa1\x49"
183};
184
185constexpr I18nText kI18N_YouTurnOnTheMusicText = {
186 "You turn on the music.",
187 "PONES MUSICA.",
188 "VOUS METTEZ LA MUSIQUE.",
189 "SCHALTE DIE MUSIK AN.",
190 "\xc0\x61\x20\x20\x9c\x61\x97\xa1\xb5\xa1\x9f\x69\x20\xc5\x73\x93\xa1\x94\x61\x2e",
191 "\xa7\x41\xa5\xb4\xb6\x7d\xad\xb5\xbc\xd6\xa1\x43"
192};
193
194constexpr I18nText kI18N_YouTurnOffTheMusicText = {
195 "You turn off the music.",
196 "QUITAS LA MUSICA.",
197 "VOUS ARRETEZ LA MUSIQUE.",
198 "SCHALTE DIE MUSIK AB.",
199 "\xc0\x61\x20\x9c\x61\x97\xa1\xb5\xa1\x9f\x69\x20\x8f\x73\x93\xa1\x94\x61\x2e",
200 "\xa7\x41\xc3\xf6\xb1\xbc\xad\xb5\xbc\xd6\xa1\x43"
201};
202
203constexpr I18nText kI18N_YouTouchTheOrnateSignalText = {
204 "You touch the surface of the ornate sigil.",
205 "TOCAS LA SUPERFICIE DE LA FIGURA ADORNADA.",
206 "VOUS TOUCHEZ LA SURFACE DE LA PIERRE MAGIQUE.",
207 "GREIFE DIE VERZAUBERTEN STEINE AN.",
208 "\xac\xe2\xa2\x61\xb7\x81\x20\xa5\xb7\xb7\xa5\xb7\x69\x20\xa0\x65\xb9\x61\xa5\xb3\x93\xa1\x94\x61\x2e",
209 "\xa7\x41\xc4\xb2\xba\x4e\xb5\xdb\xc0\x4a\xb9\xa2\xba\xeb\xac\xfc\xaa\xba\xab\xca\xa6\x4c\xaa\xed\xad\xb1\xa1\x43"
210};
211
212constexpr I18nText kI18N_ThisSentryCannotBeStoppedWithText = {
213 "This sentry cannot be stopped with a %s.",
214 "NO PUEDES PARAR A ESTE CENTINELA CON %s.",
215 "VOUS N'ARRETEREZ PAS LA SENTINELLE AVEC %s.",
216 "DIESE WACHE KANN NICHT AUFGEHALTEN WERDEN MIT %s.",
217 "%s\x9d\xa1\x93\x65\x20\x88\x65\xae\x81\x9f\x69\x20\xb8\xe1\xbb\xa1\xd0\x69\x20\xae\x81\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
218 nullptr // not translated
219};
220
221constexpr I18nText kI18N_HasNoEffectOnTheAlienTubesText = {
222 "The %s has no effect on the alien tubes.",
223 "%s NO TIENE EFECTO SOBRE LOS TUBOS ALIENIGENAS.",
224 "%s RESTE SANS EFFET SUR LES TUBES EXTRA-TERRESTRES.",
225 "%s BEWIRKT NICHTS AN AUSSERIRDISCHEN TUNNELS.",
226 "%s \x95\xb7\x9d\x62\xac\xe5\xb5\x41\x20\xb4\x61\xa2\x81\x9c\xe5\x20\xb5\x77\xd0\xb7\xb7\x69\x20\xa3\xa1\xc3\xa1\xbb\xa1\x20\xa1\xb5\xd0\x73\x93\xa1\x94\x61\x2e",
227 "\xa5\xce\x25\x73\xa6\x62\xb3\x6f\xa8\xc7\xb2\xa7\xa7\xce\xb8\xd5\xba\xde\xa4\x57\xa1\x41\xa4\x40\xc2\x49\xae\xc4\xaa\x47\xa4\x5d\xa8\x53\xa6\xb3\xa1\x43"
228};
229
230constexpr I18nText kI18N_YouIncinerateTheText = {
231 "You incinerate the %s inside the power nexus!.",
232 "INCINERAS %s DENTRO DE LA FUENTA DE ENERGIA.",
233 "VOUS INCINEREZ %s A L'INTERIEUR DU LIEN DE PUISSANCE.",
234 "DU VERNICHTEST %s MIT DER STROMVERSORGUNG!",
235 "%s \xb5\xc5\xb8\xe5\xd3\xa1\x20\xcc\x61\x8a\x41\xaf\xa1\xc5\x76\xaf\x73\x93\xa1\x94\x61\x2e",
236 "\xa7\x41\xb1\x4e\x25\x73\xa1\x41\xa9\xf1\xa6\x62\xaf\xe0\xb6\x71\xc1\x70\xb5\xb2\xa8\x74\xb2\xce\xa4\xa4\xa4\xdf\xa4\xba\xbf\x4e\xa6\xa8\xa6\xc7\xc2\x75\xa1\x49"
237};
238
239constexpr I18nText kI18N_HasNoEffectOnTheAlienMonstrosityText = {
240 "The %s has no effect on this alien monstrosity.",
241 "%s NO TIENE EFECTO SOBRE ESTA MONSTRUOSIDAD ALIENIGENA.",
242 "%s RESTE SANS EFFET SUR CETTE MONSTRUOSITE EXTRA-TERRESTRE.",
243 "%s BEWIRKT NICHTS AM AUSSERIRDISCHEN MONSTRUM.",
244 "%s \xb7\x41\x8b\xa1\xc1\x41\x20\xc4\xf1\xcf\x41\xc8\xe1\xb5\x41\x20\xb5\x77\xd0\xb7\xb7\x69\x20\xa3\xa1\xc3\xa9\xae\x85\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
245 "\xa5\xce%s\xb9\xef\xa5\x49\xb3\x6f\xa8\xc7\xb2\xa7\xa7\xce\xa9\xc7\xaa\xab\xa1\x41\xae\xda\xa5\xbb\xa8\x53\xa6\xb3\xa5\xce\xa1\x43"
246};
247
248constexpr I18nText kI18N_cutTheWiresText = {
249 "The %s is not strong enough to cut the cables.\nPerhaps if you had some wire cutters?",
250 "%s NO ES LO BASTANTE RESISTENTE COMO PARA CORTAR LOS CABLES.\nY SI TUVIERAS UN CORTACABLES?",
251 "%s NE POURRA PAS COUPER LES CABLES.\nET SI VOUS AVIEZ DES PINCES COUPANTES?",
252 "%s IST NICHT STARK GENUG, UM DIE KABEL ABZUSCHNEIDEN.\nHAST DU VIELLEICHT EINEN KABELSCHNEIDER?",
253 "%s \xc5\x41\xb7\xa1\xa7\x69\xb7\x69\x20\xb8\xe9\x94\x65\xd0\x69\x20\xae\x81\x20\xb7\xb6\xb7\x69\x20\xb8\xf7\x95\xa1\x9d\xa1\x20\x88\x77\xd0\x61\xbb\xa5\x20\xa1\xb5\xd0\x73\x93\xa1\x94\x61\x2e\x20\x89\xc1\xb5\x65\x20\xc5\x41\xb7\xa1\xa7\x69\xb7\x69\x20\xb8\xe9\x94\x65\xd0\x69\x20\xae\x81\x20\xb7\xb6\xb7\x69\x8c\x61\xb6\x61\x3f",
254 "%s\xae\xda\xa5\xbb\xa8\x53\xbf\xec\xaa\x6b\xa4\xc1\xc2\x5f\xb3\x6f\xa8\xc7\xb9\x71\xc6\x6c\xbd\x75\xa1\x43 \xa9\xce\xb3\xa7\x41\xa6\xb3\xaa\xf7\xc4\xdd\xa4\xc1\xb3\xce\xbe\xb9\xb6\xdc\xa1\x48"
255};
256
257constexpr I18nText kI18N_NoEffectOnTheProtectedAncientText = {
258 "The %s has no effect on the protected ancient.",
259 "%s NO TIENE EFECTO SOBRE EL ANTEPASADO PROTEGIDO.",
260 "%s N'A AUCUN EFFET SUR L'ANCIEN PROTEGE.",
261 "%s BEWIRKT NICHTS BEI DEM GESCHUETZTEN ALTEN.",
262 "%s \xc4\x93\xaf\x49\xad\xa2\xb7\x81\x20\xa3\xa1\xb7\xa1\x9c\x61\xb5\x41\x89\x41\x20\xb5\x77\xd0\xb7\xb7\x69\x20\xa3\xa1\xc3\xa1\xbb\xa1\x20\xa1\xb5\xd0\x73\x93\xa1\x94\x61\x2e",
263 "\x25\x73\xb9\xef\xb3\x6f\xa8\xc7\xa8\xfc\xa8\xec\xab\x4f\xc5\x40\xaa\xba\xa5\x6a\xa5\x4e\xa4\x48\xa1\x41\xa8\xc3\xa8\x53\xa6\xb3\xa5\xf4\xa6\xf3\xae\xc4\xa5\xce\xa1\x43"
264};
265
266constexpr I18nText kI18N_YouHideTheObjectUnderThePillowText = {
267 "You hide the %s under the pillow.",
268 "OCULTAS %s BAJO LA ALMOHADA.",
269 "VOUS CACHEZ %s SOUS L'OREILLER.",
270 "DU VERSTECKST %s UNTER DEM KISSEN.",
271 "%s \xa5\x41\x88\x81\xa3\xbb\xb5\x41\x20\xae\x91\x8b\xb3\x93\xa1\x94\x61\x2e",
272 "\xa7\x41\xa7\xe2%s\xc2\xc3\xa6\x62\xaa\x45\xc0\x59\xa9\xb3\xa4\x55\xa1\x43"
273};
274
275constexpr I18nText kI18N_DontPutTheObjectInTheTrunkText = {
276 "Don't put the %s in the trunk, you'll forget it.",
277 "NO PONGAS %s EN EL BAUL, TE OLVIDARAS.",
278 "NE METTEZ PAS %s DANS LE COFFRE, VOUS L'OUBLIEREZ.",
279 "WENN DU %s IN DEN TRUHE LEGST, VERGISST DU ES.", // TODO check this is correct.
280 "%s \xcb\x61\x9c\xf7\xc7\x61\xb5\x41\x20\x90\xfd\xbb\xa1\x20\xa0\x61\xaf\xb3\xaf\xa1\xb6\x61\x2e",
281 "\xa4\xa3\xad\x6e\xb1\x4e\x25\x73\xa9\xf1\xa6\x62\xa8\x54\xa8\xae\xa6\xe6\xa7\xf5\xbd\x63\xa4\xa4\xa1\x41\xa7\x41\xb1\x4e\xab\xdc\xae\x65\xa9\xf6\xa7\xd1\xb0\x4f\xa5\xa6\xb4\xbf\xb8\x67\xa9\xf1\xa6\x62\xa6\xf3\xb3\x42\xa1\x43"
282};
283
284constexpr I18nText kI18N_TheCarWontStartWithTheText = {
285 "The car won't start with the %s.",
286 "EL COCHE NO SE PONDRA EN MARCHA CON %s.",
287 "LA VOITURE NE DEMARRERA PAS AVEC %s.",
288 "DAS AUTO SPRINGT NICHT AN MIT %s.",
289 "%s\x9d\xa1\x93\x65\x20\xb8\x61\x95\xb7\xc0\x61\xb7\x81\x20\xaf\xa1\x95\xb7\xb7\x69\x20\x88\xe9\x20\xae\x81\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
290 "\xa8\xcf\xa5\xce%s\xa8\xc3\xa4\xa3\xaf\xe0\xc5\xfd\xa8\x54\xa8\xae\xb5\x6f\xb0\xca\xa1\x43"
291};
292
293constexpr I18nText kI18N_IfYouPutTheObjectInTheTrunkText = {
294 "If you put the %s in the trunk, you'll forget it.",
295 "SI PONES %s EN EL BAUL, TE OLVIDARAS.",
296 "SI VOUS METTEZ %s DANS LE COFFRE, VOUS L'OUBLIEREZ.",
297 "WENN DU %s IN DEN TRUHE LEGST, VERGISST DU ES.",
298 "%s \xb7\xb0\xb4\xe1\xa4\xe1\x9f\xa1\x89\xa1\x20\xaf\xbc\xb7\x61\xaf\xb3\x93\xa1\x8c\x61\x3f",
299 "\xad\x59\xac\x4f\xa7\x41\xb1\x4e\x25\x73\xa9\xf1\xa6\x62\xa8\x54\xa8\xae\xa6\xe6\xa7\xf5\xbd\x63\xa4\xa4\xa1\x41\xa7\x41\xb1\x4e\xab\xdc\xae\x65\xa9\xf6\xa7\xd1\xb0\x4f\xa5\xa6\xb4\xbf\xb8\x67\xa9\xf1\xa6\x62\xa6\xf3\xb3\x42\xa1\x43"
300};
301
302constexpr I18nText kI18N_TheObjectIsYoursYouHaventLostItText = {
303 "The %s is yours, you haven't lost it.",
304 "%s ES TUYA, NO LA HASA PERDIDO.",
305 "%s EST A VOUS, VOUS NE L'AVEZ PAS PERDUE.",
306 "%s GEHOERT DIR, DU HAST ES NICHT VERLOREN.",
307 "%s \xb7\xa1\xa3\xa1\x20\x94\x77\xaf\xa5\xb7\x81\x20\x88\xf5\xb7\xb3\x93\xa1\x94\x61\x2e",
308 "%s\xa4\x77\xb8\x67\xac\x4f\xa7\x41\xaa\xba\xa4\x46\xa1\x41\xa7\x41\xa8\xc3\xa8\x53\xa6\xb3\xbf\xf2\xa5\xa2\xb1\xbc\xb0\xda\xa1\x48"
309};
310
311constexpr I18nText kI18N_notAGoodPlaceToHideTheText = {
312 "Not a good place to hide the %s.",
313 "NO ES UN BUEN SITIO PARA OCULTAR %S.",
314 "VOUS NE POURREZ PAS CACHER %S.",
315 "KEIN GUTES VERSTECK FUER %S.",
316 "%s \x91\xbd\xb4\x61\x96\x89\xa0\x65\xd0\x65\x20\xb8\x77\xad\xa1\x93\x65\x20\xb4\x61\x93\xb3\x93\xa1\x94\x61\x2e",
317 "\xb3\x6f\xa4\xa3\xac\x4f\xa4\x40\xad\xd3\xc2\xc3%s\xaa\xba\xa6\x6e\xa6\x61\xa4\xe8\xa1\x43"
318};
319
320constexpr I18nText kI18N_youTryToPutTheObjectInsideButTheDoorWontOpenText = {
321 "You try to put the %s inside, but the door won't open",
322 "INTENTAS PONER %s DENTRO, PERO LA PUERTA NO SE ABRIRA.",
323 "VOUS ESSAYEZ DE METTRE %s A L'INTERIEUR, MAIS LA PORTE NE S'OUVRIRA PAS.",
324 "DU VERSUCHST, %s HINEINZUSTELLEN, ABER DIE TUER OEFFNET SICH NICHT.",
325 "%s \x8b\x61\x89\xb5\xb5\x41\x20\xac\x61\xb6\x77\xd0\x69\x20\xcf\xa9\xb6\x61\x88\x61\x20\xb7\xb6\xb7\x69\x8c\x61\xb6\x61\x3f",
326 "\xa7\x41\xb9\xc1\xb8\xd5\xb1\x4e\x25\x73\xa9\xf1\xb8\x6d\xa6\x62\xb8\xcc\xad\xb1\xa1\x41\xa6\xfd\xac\x4f\xaa\xf9\xa8\xc3\xa8\x53\xa6\xb3\xa5\xb4\xb6\x7d\xa1\x43"
327};
328
329constexpr I18nText kI18N_theKitchenIsNoPlaceToKeepTheText = {
330 "The kitchen is no place to keep the %s.",
331 "LA COCINA NO ES LUGAR PARA GUARDAR %s.",
332 "LA CUISINE NE CONVIENT PAS A %s.",
333 "DIE KUECHE IST KEIN PLATZ FUER %s.",
334 "\xa6\x81\xb4\xfa\xb5\x41\x93\x65 %s \x91\xbd\xb4\x61\x96\x89\xa0\x65\xd0\x65\x20\xb8\x77\xad\xa1\x88\x61\x20\xb4\x61\x93\xb3\x93\xa1\x94\x61\x2e",
335 "\xbc\x70\xa9\xd0\xa8\xc3\xa8\x53\xa6\xb3\xa6\x68\xa4\xd6\xaa\xc5\xb6\xa1\xa8\xd3\xa6\x73\xa9\xf1%s"
336};
337
338constexpr I18nText kI18N_youllForgetTheObjectHereText = {
339 "You'll forget the %s here.",
340 "OLIVIDARAS %s AQUI.",
341 "VOUS OUBLIEREZ %s ICI.",
342 "DU WIRST NOCH %s HIER VERGESSEN.",
343 "\xb5\x61\x8b\xa1\x94\x61 %s \x91\xbd\xb4\x61\x96\x81\xa1\x65\x20\xb7\xb0\xb4\xe1\xa4\xe1\x9f\xa9\x20\x88\xf5\xb7\xb3\x93\xa1\x94\x61\x2e",
344 "\xa7\x41\xb1\x4e\xb7\x7c\xa7\xd1\xa4\x46\xa7\xe2\x25\x73\xa9\xf1\xa6\x62\xb3\x6f\xb8\xcc\xa1\x43"
345};
346
347constexpr I18nText kI18N_youdRatherHaveTheObjectWithYouText = {
348 "You'd rather have the %s with you.",
349 "SERIA MEJOR TENER %s CONTIGO.",
350 "IL VAUDRAIT MIEUX AVOIR %s SUR VOUS.",
351 "DU HAETTEST LIEBER %s BEI DIR.",
352 "\xc0\x61\x9c\x61\x9f\xa1 %s \x88\x61\xbb\xa1\x93\x65\x89\x41\x20\xb9\xbd\xb7\x69\x88\xf5\x20\xb7\xb3\x93\xa1\x94\x61\x2e",
353 "\xa7\x41\xb9\xe7\xc4\x40\xb1\x4e\x25\x73\xaf\x64\xa6\x62\xa8\xad\xa4\x57\xa1\x43"
354};
355
356constexpr I18nText kI18N_theObjectHasNoEffectText = {
357 "The %s has no effect.",
358 "%s NO TIENE EFECTO.",
359 "%s N'A AUCUN EFFET.",
360 "%s BEWIRKT NICHTS.",
361 "%s \xb5\x77\xd0\xb7\xb7\x69\x20\xa3\xa1\xc3\xa1\xbb\xa1\x20\xa1\xb5\xd0\x73\x93\xa1\x94\x61\x2e",
362 "%s\xa8\x53\xa6\xb3\xae\xc4\xaa\x47\xa1\x43"
363};
364
365constexpr I18nText kI18N_thisIsNotAGoodPlaceForTheText = {
366 "This is not a good place for the %s.",
367 "NO ES UN BUEN SITIO PARA %s.",
368 "CE N'EST PAS UN BON ENDROIT POUR %s.",
369 "DAS IST KEIN GUTER PLATZ FUER %s.",
370 "%s \x91\xbd\xb4\x61\x96\x89\x20\xb8\x77\xad\xa1\x9d\xa1\xac\xe1\x93\x65\x20\xb8\xe2\xd0\x73\xd0\x61\xbb\xa1\x20\xb4\x67\xb7\x65\x88\xf5\x20\x88\x7b\x8a\x85\xb6\x61\x2e",
371 "\xb3\x6f\xb8\xcc\xa4\xa3\xac\x4f\xa9\xf1\xb8\x6d\x25\x73\xaa\xba\xa6\x6e\xa6\x61\xa4\xe8\xa1\x43"
372};
373
374constexpr I18nText kI18N_youSeeAReflectionOfTheText = {
375 "You see a reflection of the %s.",
376 "VES UN REFLEJO DE %s.",
377 "VOUS VOYEZ UN REFLET REPRESENTANT %s.",
378 "DU SIEHST EIN SPIEGELBILD VON %s.",
379 "%s \x88\xe1\xb6\x89\xb9\xa1\x88\x62\xb5\x41\x20\xa7\xa1\xc2\xa1\x95\xa1\x20\xb4\x61\xa2\x81\x9c\xe5\x20\xa4\x65\xb7\x77\xb7\xa1\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
380 "\xa7\x41\xac\xdd\xa8\xec\xa4\x46\x25\x73\xaa\xba\xa4\xcf\xae\x67\xac\x4d\xb9\xb3\xa1\x43"
381};
382
383constexpr I18nText kI18N_youDontWantToLeaveTheObjectUnderTheBedText = {
384 "You don't want to leave the %s under the bed.",
385 "NO QUIERES DEJAR %s DEBAJO DE LA CAMA.",
386 "POURQUOI LAISSERIEZ-VOUS %s SOUS LE LIT?",
387 "DU WILLST %s NICHT UNTER DEM BETT LASSEN.",
388 "%s \xc3\xb1\x94\x81\xa3\xbb\xb5\x41\x20\x90\xfd\x93\x65\x88\xf5\xb7\x65\x20\xa5\x69\x9d\xa1\x20\xb9\xbd\xb7\x65\x20\xac\x97\x88\x62\xb7\xa1\x20\xb4\x61\x93\xa5\x88\xf5\x20\x88\x7b\xaf\x73\x93\xa1\x94\x61\x2e",
389 "\xa7\x41\xa4\xa3\xad\x6e\xb1\x4e\x25\x73\xaf\x64\xa6\x62\xa7\xc9\xa9\xb3\xa4\x55\xa1\x43"
390};
391
392constexpr I18nText kI18N_genResponse0_usingTheObjectOnTheObjectItMustBeYourHeadachesText = {
393 "Using the %s on the %s doesn't make any sense, it must be your headaches!",
394 "UTILIZAR %s EN %s NO TIENE SENTIDO, TE PRODUCIRA DOLOR DE CABEZA",
395 "POURQUOI UTILISER %s SUR %s PRENEZ DONC DE L'ASPIRINE!",
396 "GEBRAUCHEN VON %s AUF %s MACHT KEINEN SINN, DAS MUSS AN DEINEN KOPFSCHMERZEN LIEGEN!",
397 "%s %s\xb5\x41\x20\xac\x61\xb6\x77\xd0\x61\x93\x65\x88\xf5\xb7\x65\x20\xa0\x69\x95\xa1\x96\x41\xbb\xa1\x20\xb4\x67\xaf\x73\x93\xa1\x94\x61\x2e\x20\x8b\x61\x20\xaf\xb1\xd0\x65\x20\x96\x81\xc9\xb7\x98\x81\xa2\x85\xb5\x41\x20\x8b\x61\x9c\xe1\x93\x65\x88\xf5\xb7\xa1\x20\xb4\x61\x93\xa9\x8c\x61\xb6\x61\x3f",
398 "\xa8\xcf\xa5\xce\x25\x73\xa9\xf3\x25\x73\xb2\x40\xb5\x4c\xb7\x4e\xb8\x71\xa1\x41\xa8\xba\xa4\x40\xa9\x77\xa5\xd1\xa9\xf3\xa7\x41\xaa\xba\xc0\x59\xb5\x68\xa1\x49"
399};
400
401constexpr I18nText kI18N_genResponse1_theObjectWillDoNothingToTheText = {
402 "The %s will do nothing to the %s.",
403 "%s NO TIENE NADA QUE VER CON %s.",
404 "%s NE FERONT RIEN A %s.",
405 "%s HAT NICHTS ZU TUN MIT %s",
406 "%s %s\xb5\x41\x20\xac\x61\xb6\x77\xd0\x61\x93\x65\x88\xf5\xb7\x65\x20\xb4\x61\xa2\x81\x9c\xe5\x20\xad\xa1\xb6\x77\xb7\xa1\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
407 "\xa7\xe2\x25\x73\xa5\xce\xa6\x62\x25\x73\xa4\x57\xa8\x53\xa6\xb3\xa5\xce\xa1\x43"
408};
409
410constexpr I18nText kI18N_genResponse2_theObjectDoesntHaveAnyEffectOnTheText = {
411 "The %s doesn't have any effect on the %s.",
412 "%s NO LE CAUSARA EFECTO A %s.",
413 "%s N'AURA AUCUN EFFET SUR %s.",
414 "%s BEWIRKT NICHTS MIT %s.",
415 "%s %s\xb5\x41\x20\xb4\x61\xa2\x81\xb5\x77\xd0\xb7\x95\xa1\x20\xa3\xa1\xc3\xa1\xbb\xa1\xa1\xb5\xd0\x73\x93\xa1\x94\x61\x2e",
416 "\xa7\xe2\x25\x73\xa5\xce\xa6\x62\x25\x73\xa4\x57\xb2\x40\xb5\x4c\xae\xc4\xaa\x47\xa1\x43"
417};
418
419constexpr I18nText kI18N_genResponse3_theObjectHasNothingToDoWithTheText = {
420 "The %s has nothing to do with %s.",
421 "%s NO TIENE NADA QUE VER CON %s.",
422 "%s N'A AUCUN RAPPORT AVEC %s.",
423 "%s HAT NICHTS ZU TUN MIT %s.",
424 "%s %s \xb8\xe5\xd1\x61\x20\x89\xc5\x89\x81\x88\x61\x20\xb4\xf4\xaf\x73\x93\xa1\x94\x61\x2e",
425 "\x25\x73\xb9\xef\x25\x73\xb0\x5f\xa4\xa3\xa4\x46\xa4\xb0\xbb\xf2\xa7\x40\xa5\xce\xa1\x43"
426};
427
428constexpr I18nText kI18N_genResponse4_areYouFeelingAlrightText = {
429 "Are you feeling alright?",
430 "TE ENCUENTRAS BIEN?",
431 "VOUS ETES SUR QUE CA VA BIEN?",
432 "FUEHLST DU DICH GUT?",
433 "\xbb\xa1\x8b\x71\x20\xb8\xf7\xaf\xa5\xb7\xa1\x20\xb5\xa5\xb8\xe5\xd0\x73\x93\xa1\x8c\x61\x3f\x0a",
434 "\xa7\x41\xc1\xd9\xa6\x6e\xa7\x61\xa1\x48"
435};
436
437constexpr I18nText kI18N_blankText = {
438 "",
439 "",
440 "",
441 "",
442 "",
443 ""
444};
445} // namespace Darkseed
446
447#endif //DARKSEED_LANGTEXT_H
Definition: ustr.h:57
Language
Definition: language.h:45
char32_t u32char_type_t
Definition: ustr.h:55
Definition: langtext.h:52
Definition: langtext.h:37
Definition: langtext.h:46