@novely/core 0.12.4 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/index.d.ts +64 -14
- package/dist/index.global.js +230 -54
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +229 -28
- package/dist/index.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import * as _novely_t9n from '@novely/t9n';
|
|
2
|
-
import { BaseTranslationStrings, SetupT9N } from '@novely/t9n';
|
|
3
|
-
export { BaseTranslationStrings } from '@novely/t9n';
|
|
4
|
-
|
|
5
1
|
type Name<Keys extends string = string> = string | Record<Keys, string>;
|
|
6
2
|
type Emotions<Keys extends string = string> = Record<Keys, string | {
|
|
7
3
|
body: Record<'left' | 'right', string>;
|
|
@@ -51,7 +47,7 @@ type CoreData = {
|
|
|
51
47
|
|
|
52
48
|
type ValidAction = ['choice', [number]] | ['clear', [Set<keyof DefaultActionProxyProvider>?, Set<string>?]] | ['condition', [() => boolean, Record<string, ValidAction[]>]] | ['dialog', [string | undefined, Unwrappable, string | undefined]] | ['end', []] | ['showBackground', [string | NonEmptyRecord<BackgroundImage>]] | ['playMusic', [string]] | ['stopMusic', [string]] | ['jump', [string]] | ['showCharacter', [string, keyof Character['emotions'], string?, string?]] | ['hideCharacter', [string, string?, string?, number?]] | ['animateCharacter', [string, number, ...string[]]] | ['wait', [FunctionableValue<number>]] | ['function', [() => Thenable<void>]] | ['input', [string, (meta: ActionInputOnInputMeta) => void, ActionInputSetup?]] | ['custom', [CustomHandler]] | ['vibrate', [...number[]]] | ['next', []] | ['text', [...string[]]] | ['exit', []] | ['preload', [string]] | ['block', [string]] | ValidAction[];
|
|
53
49
|
type Story = Record<string, ValidAction[]>;
|
|
54
|
-
type Unwrappable = string |
|
|
50
|
+
type Unwrappable = string | Record<string, string | (() => string)>;
|
|
55
51
|
type FunctionableValue<T> = T | (() => T);
|
|
56
52
|
type CustomHandlerGetResultDataFunction = {
|
|
57
53
|
(data?: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -141,6 +137,50 @@ type ActionProxyProvider<Characters extends Record<string, Character>> = {
|
|
|
141
137
|
type DefaultActionProxyProvider = ActionProxyProvider<Record<string, Character>>;
|
|
142
138
|
type GetActionParameters<T extends Capitalize<keyof DefaultActionProxyProvider>> = Parameters<DefaultActionProxyProvider[Uncapitalize<T>]>;
|
|
143
139
|
|
|
140
|
+
declare const RU: {
|
|
141
|
+
NewGame: string;
|
|
142
|
+
HomeScreen: string;
|
|
143
|
+
ToTheGame: string;
|
|
144
|
+
Language: string;
|
|
145
|
+
NoSaves: string;
|
|
146
|
+
LoadSave: string;
|
|
147
|
+
Saves: string;
|
|
148
|
+
Settings: string;
|
|
149
|
+
Sumbit: string;
|
|
150
|
+
GoBack: string;
|
|
151
|
+
DoSave: string;
|
|
152
|
+
Auto: string;
|
|
153
|
+
Stop: string;
|
|
154
|
+
Exit: string;
|
|
155
|
+
Automatic: string;
|
|
156
|
+
Manual: string;
|
|
157
|
+
Remove: string;
|
|
158
|
+
LoadASaveFrom: string;
|
|
159
|
+
DeleteASaveFrom: string;
|
|
160
|
+
TextSpeed: string;
|
|
161
|
+
TextSpeedSlow: string;
|
|
162
|
+
TextSpeedMedium: string;
|
|
163
|
+
TextSpeedFast: string;
|
|
164
|
+
TextSpeedAuto: string;
|
|
165
|
+
CompleteText: string;
|
|
166
|
+
GoForward: string;
|
|
167
|
+
ExitDialogWarning: string;
|
|
168
|
+
ExitDialogExit: string;
|
|
169
|
+
ExitDialogBack: string;
|
|
170
|
+
OpenMenu: string;
|
|
171
|
+
CloseMenu: string;
|
|
172
|
+
};
|
|
173
|
+
type BaseTranslationStrings = keyof typeof RU;
|
|
174
|
+
declare const EN: Record<BaseTranslationStrings, string>;
|
|
175
|
+
/**
|
|
176
|
+
* Translated automatically
|
|
177
|
+
*/
|
|
178
|
+
declare const KK: Record<BaseTranslationStrings, string>;
|
|
179
|
+
/**
|
|
180
|
+
* Translated automatically
|
|
181
|
+
*/
|
|
182
|
+
declare const JP: Record<BaseTranslationStrings, string>;
|
|
183
|
+
|
|
144
184
|
type Stored<T> = {
|
|
145
185
|
subscribe: (cb: (value: T) => void) => () => void;
|
|
146
186
|
update: (fn: (prev: T) => T) => void;
|
|
@@ -243,9 +283,14 @@ interface Storage {
|
|
|
243
283
|
}
|
|
244
284
|
declare const localStorageStorage: (options: LocalStorageStorageSettings) => Storage;
|
|
245
285
|
|
|
286
|
+
type PluralType = Intl.LDMLPluralRule;
|
|
287
|
+
type Pluralization = Partial<Record<PluralType, string>>;
|
|
288
|
+
type AllowedContent = string | (() => string | string[]) | string[] | (string | (() => string | string[]))[];
|
|
289
|
+
type TranslationActions = Partial<Record<string, (str: string) => string>>;
|
|
290
|
+
|
|
246
291
|
declare const getLanguage: (languages: string[]) => string;
|
|
247
292
|
|
|
248
|
-
interface NovelyInit<Languages extends string, Characters extends Record<string, Character<Languages>>,
|
|
293
|
+
interface NovelyInit<Languages extends string, Characters extends Record<string, Character<Languages>>, StateScheme extends State, DataScheme extends Data> {
|
|
249
294
|
/**
|
|
250
295
|
* An array of languages supported by the game.
|
|
251
296
|
*/
|
|
@@ -256,8 +301,9 @@ interface NovelyInit<Languages extends string, Characters extends Record<string,
|
|
|
256
301
|
characters: Characters;
|
|
257
302
|
/**
|
|
258
303
|
* An object that provides access to the game's storage system.
|
|
304
|
+
* @default localStorage // at key `novely-game-storage`
|
|
259
305
|
*/
|
|
260
|
-
storage
|
|
306
|
+
storage?: Storage;
|
|
261
307
|
/**
|
|
262
308
|
* Delay loading data until Promise is resolved
|
|
263
309
|
*/
|
|
@@ -273,7 +319,15 @@ interface NovelyInit<Languages extends string, Characters extends Record<string,
|
|
|
273
319
|
/**
|
|
274
320
|
* An object containing the translation functions used in the game
|
|
275
321
|
*/
|
|
276
|
-
|
|
322
|
+
translation: Record<Languages, {
|
|
323
|
+
internal: Record<BaseTranslationStrings, string>;
|
|
324
|
+
/**
|
|
325
|
+
* IETF BCP 47 language tag
|
|
326
|
+
*/
|
|
327
|
+
tag?: string;
|
|
328
|
+
plural?: Record<string, Pluralization>;
|
|
329
|
+
actions?: TranslationActions;
|
|
330
|
+
}>;
|
|
277
331
|
/**
|
|
278
332
|
* Initial state value
|
|
279
333
|
*/
|
|
@@ -324,7 +378,7 @@ interface NovelyInit<Languages extends string, Characters extends Record<string,
|
|
|
324
378
|
*/
|
|
325
379
|
preloadAssets?: "lazy" | "blocking";
|
|
326
380
|
}
|
|
327
|
-
declare const novely: <Languages extends string, Characters extends Record<string, Character<Languages>>,
|
|
381
|
+
declare const novely: <Languages extends string, Characters extends Record<string, Character<Languages>>, StateScheme extends State, DataScheme extends Data>({ characters, storage, storageDelay, renderer: createRenderer, initialScreen, translation, languages, state: defaultState, data: defaultData, autosaves, migrations, throttleTimeout, getLanguage, overrideLanguage, askBeforeExit, preloadAssets }: NovelyInit<Languages, Characters, StateScheme, DataScheme>) => {
|
|
328
382
|
/**
|
|
329
383
|
* Function to set story
|
|
330
384
|
*/
|
|
@@ -351,10 +405,6 @@ declare const novely: <Languages extends string, Characters extends Record<strin
|
|
|
351
405
|
* Unwraps translatable content to a string value
|
|
352
406
|
*/
|
|
353
407
|
unwrap(content: Unwrappable | Record<Languages, string>): string;
|
|
354
|
-
/**
|
|
355
|
-
* Function that is used for translation
|
|
356
|
-
*/
|
|
357
|
-
t: Inter["t"];
|
|
358
408
|
};
|
|
359
409
|
|
|
360
|
-
export { ActionProxyProvider, AudioHandle, Character, CharacterHandle, CoreData, CustomHandler, CustomHandlerGetResult, CustomHandlerGetResultDataFunction, DefaultActionProxyProvider, Emotions, FunctionableValue, GetActionParameters, Lang, NovelyScreen, Path, Renderer, RendererInit, RendererStore, Storage, StorageData, StorageMeta, Stored, Story, Thenable, TypewriterSpeed, Unwrappable, ValidAction, localStorageStorage, novely };
|
|
410
|
+
export { ActionProxyProvider, AllowedContent, AudioHandle, BaseTranslationStrings, Character, CharacterHandle, CoreData, CustomHandler, CustomHandlerGetResult, CustomHandlerGetResultDataFunction, DefaultActionProxyProvider, EN, Emotions, FunctionableValue, GetActionParameters, JP, KK, Lang, NovelyScreen, Path, PluralType, Pluralization, RU, Renderer, RendererInit, RendererStore, Storage, StorageData, StorageMeta, Stored, Story, Thenable, TranslationActions, TypewriterSpeed, Unwrappable, ValidAction, localStorageStorage, novely };
|
package/dist/index.global.js
CHANGED
|
@@ -21,6 +21,10 @@ var Novely = (() => {
|
|
|
21
21
|
// src/index.ts
|
|
22
22
|
var src_exports = {};
|
|
23
23
|
__export(src_exports, {
|
|
24
|
+
EN: () => EN,
|
|
25
|
+
JP: () => JP,
|
|
26
|
+
KK: () => KK,
|
|
27
|
+
RU: () => RU,
|
|
24
28
|
localStorageStorage: () => localStorageStorage,
|
|
25
29
|
novely: () => novely
|
|
26
30
|
});
|
|
@@ -256,40 +260,79 @@ var Novely = (() => {
|
|
|
256
260
|
return val;
|
|
257
261
|
}
|
|
258
262
|
|
|
259
|
-
//
|
|
260
|
-
var
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
263
|
+
// src/translation.ts
|
|
264
|
+
var RGX = /{{(.*?)}}/g;
|
|
265
|
+
var split = (input, delimeters) => {
|
|
266
|
+
const output = [];
|
|
267
|
+
for (const delimeter of delimeters) {
|
|
268
|
+
if (!input)
|
|
264
269
|
break;
|
|
265
|
-
|
|
266
|
-
|
|
270
|
+
const [start, end] = input.split(delimeter, 2);
|
|
271
|
+
output.push(start);
|
|
272
|
+
input = end;
|
|
267
273
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
var
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
if (
|
|
276
|
-
return
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
274
|
+
output.push(input);
|
|
275
|
+
return output;
|
|
276
|
+
};
|
|
277
|
+
var unwrap = (c) => {
|
|
278
|
+
if (Array.isArray(c)) {
|
|
279
|
+
return c.map((item) => unwrap(item)).join("<br>");
|
|
280
|
+
}
|
|
281
|
+
if (typeof c === "function") {
|
|
282
|
+
return unwrap(c());
|
|
283
|
+
}
|
|
284
|
+
return c;
|
|
285
|
+
};
|
|
286
|
+
var replace = (str2, obj, pluralization, actions, pr) => {
|
|
287
|
+
return unwrap(str2).replaceAll(RGX, (x, key, y) => {
|
|
288
|
+
x = 0;
|
|
289
|
+
y = obj;
|
|
290
|
+
const [pathstr, plural, action] = split(key.trim(), ["@", "%"]);
|
|
291
|
+
if (!pathstr) {
|
|
292
|
+
return "";
|
|
293
|
+
}
|
|
294
|
+
const path = pathstr.split(".");
|
|
295
|
+
while (y && x < path.length)
|
|
296
|
+
y = y[path[x++]];
|
|
297
|
+
if (plural && pluralization && y && pr) {
|
|
298
|
+
y = pluralization[plural][pr.select(y)];
|
|
299
|
+
}
|
|
300
|
+
const actionHandler = actions && action && actions[action];
|
|
301
|
+
if (actionHandler)
|
|
302
|
+
y = actionHandler(y);
|
|
303
|
+
return y == null ? "" : y;
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
// src/storage.ts
|
|
308
|
+
var localStorageStorage = (options) => {
|
|
309
|
+
return {
|
|
310
|
+
async get() {
|
|
311
|
+
const fallback = { saves: [], data: {}, meta: [] };
|
|
312
|
+
try {
|
|
313
|
+
const value = localStorage.getItem(options.key);
|
|
314
|
+
return value ? JSON.parse(value) : fallback;
|
|
315
|
+
} catch {
|
|
316
|
+
return fallback;
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
async set(data) {
|
|
320
|
+
try {
|
|
321
|
+
localStorage.setItem(options.key, JSON.stringify(data));
|
|
322
|
+
} catch {
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
};
|
|
284
327
|
|
|
285
328
|
// src/novely.ts
|
|
286
329
|
var novely = ({
|
|
287
330
|
characters,
|
|
288
|
-
storage,
|
|
331
|
+
storage = localStorageStorage({ key: "novely-game-storage" }),
|
|
289
332
|
storageDelay = Promise.resolve(),
|
|
290
333
|
renderer: createRenderer,
|
|
291
334
|
initialScreen = "mainmenu",
|
|
292
|
-
|
|
335
|
+
translation,
|
|
293
336
|
languages,
|
|
294
337
|
state: defaultState,
|
|
295
338
|
data: defaultData,
|
|
@@ -410,6 +453,9 @@ var Novely = (() => {
|
|
|
410
453
|
storage.set(value);
|
|
411
454
|
};
|
|
412
455
|
const throttledOnStorageDataChange = throttle(onStorageDataChange, throttleTimeout);
|
|
456
|
+
const throttledEmergencyOnStorageDataChange = throttle(() => {
|
|
457
|
+
onStorageDataChange($.get());
|
|
458
|
+
}, 10);
|
|
413
459
|
$.subscribe(throttledOnStorageDataChange);
|
|
414
460
|
const getStoredData = async () => {
|
|
415
461
|
let stored = await storage.get();
|
|
@@ -435,6 +481,12 @@ var Novely = (() => {
|
|
|
435
481
|
storageDelay.then(getStoredData);
|
|
436
482
|
const initial = getDefaultSave(klona(defaultState));
|
|
437
483
|
const stack = createStack(initial);
|
|
484
|
+
addEventListener("visibilitychange", () => {
|
|
485
|
+
if (document.visibilityState === "hidden") {
|
|
486
|
+
throttledEmergencyOnStorageDataChange();
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
addEventListener("beforeunload", throttledEmergencyOnStorageDataChange);
|
|
438
490
|
const save = (override = false, type = override ? "auto" : "manual") => {
|
|
439
491
|
if (!$$.get().dataLoaded)
|
|
440
492
|
return;
|
|
@@ -641,6 +693,9 @@ var Novely = (() => {
|
|
|
641
693
|
const back = () => {
|
|
642
694
|
return stack.back(), restore(stack.value);
|
|
643
695
|
};
|
|
696
|
+
const t = (key, lang) => {
|
|
697
|
+
return translation[lang].internal[key];
|
|
698
|
+
};
|
|
644
699
|
const renderer = createRenderer({
|
|
645
700
|
characters,
|
|
646
701
|
set,
|
|
@@ -649,9 +704,9 @@ var Novely = (() => {
|
|
|
649
704
|
newGame,
|
|
650
705
|
exit,
|
|
651
706
|
back,
|
|
707
|
+
t,
|
|
652
708
|
stack,
|
|
653
709
|
languages,
|
|
654
|
-
t: t9n.i,
|
|
655
710
|
$,
|
|
656
711
|
$$
|
|
657
712
|
});
|
|
@@ -684,11 +739,11 @@ var Novely = (() => {
|
|
|
684
739
|
},
|
|
685
740
|
dialog([character, content, emotion]) {
|
|
686
741
|
const name = (() => {
|
|
687
|
-
const
|
|
742
|
+
const c = character;
|
|
688
743
|
const cs = characters;
|
|
689
744
|
const lang = $.get().meta[0];
|
|
690
|
-
if (
|
|
691
|
-
const block = cs[
|
|
745
|
+
if (c && c in cs) {
|
|
746
|
+
const block = cs[c].name;
|
|
692
747
|
if (typeof block === "string") {
|
|
693
748
|
return block;
|
|
694
749
|
}
|
|
@@ -696,9 +751,9 @@ var Novely = (() => {
|
|
|
696
751
|
return block[lang];
|
|
697
752
|
}
|
|
698
753
|
}
|
|
699
|
-
return
|
|
754
|
+
return c || "";
|
|
700
755
|
})();
|
|
701
|
-
const run = renderer.dialog(
|
|
756
|
+
const run = renderer.dialog(unwrap2(content), unwrap2(name), character, emotion);
|
|
702
757
|
run(forward, goingBack);
|
|
703
758
|
},
|
|
704
759
|
function([fn]) {
|
|
@@ -714,10 +769,10 @@ var Novely = (() => {
|
|
|
714
769
|
question = "";
|
|
715
770
|
}
|
|
716
771
|
const unwrapped = choices.map(([content, action2, visible]) => {
|
|
717
|
-
return [
|
|
772
|
+
return [unwrap2(content), action2, visible];
|
|
718
773
|
});
|
|
719
774
|
const run = renderer.choices(
|
|
720
|
-
|
|
775
|
+
unwrap2(question),
|
|
721
776
|
unwrapped
|
|
722
777
|
);
|
|
723
778
|
run((selected) => {
|
|
@@ -756,7 +811,7 @@ var Novely = (() => {
|
|
|
756
811
|
times.clear();
|
|
757
812
|
},
|
|
758
813
|
input([question, onInput, setup]) {
|
|
759
|
-
renderer.input(
|
|
814
|
+
renderer.input(unwrap2(question), onInput, setup)(forward);
|
|
760
815
|
},
|
|
761
816
|
custom([handler]) {
|
|
762
817
|
const result = renderer.custom(handler, goingBack, () => {
|
|
@@ -796,7 +851,7 @@ var Novely = (() => {
|
|
|
796
851
|
match("custom", [handler]);
|
|
797
852
|
},
|
|
798
853
|
text(text) {
|
|
799
|
-
renderer.text(text.map((content) =>
|
|
854
|
+
renderer.text(text.map((content) => unwrap2(content)).join(" "), forward, goingBack);
|
|
800
855
|
},
|
|
801
856
|
exit() {
|
|
802
857
|
if (restoring)
|
|
@@ -888,7 +943,7 @@ var Novely = (() => {
|
|
|
888
943
|
const interactivity = (value = false) => {
|
|
889
944
|
interacted = value ? interacted + 1 : 0;
|
|
890
945
|
};
|
|
891
|
-
const
|
|
946
|
+
const unwrap2 = (content, global = false) => {
|
|
892
947
|
const {
|
|
893
948
|
data: data2,
|
|
894
949
|
meta: [lang]
|
|
@@ -896,7 +951,11 @@ var Novely = (() => {
|
|
|
896
951
|
const obj = global ? data2 : state();
|
|
897
952
|
const cnt = isFunction(content) ? content(lang, obj) : typeof content === "string" ? content : content[lang];
|
|
898
953
|
const str2 = isFunction(cnt) ? cnt() : cnt;
|
|
899
|
-
|
|
954
|
+
const trans = translation[lang];
|
|
955
|
+
if (trans.actions || trans.plural) {
|
|
956
|
+
return replace(str2, obj, trans.plural, trans.actions, new Intl.PluralRules(trans.tag || lang));
|
|
957
|
+
}
|
|
958
|
+
return replace(str2, obj);
|
|
900
959
|
};
|
|
901
960
|
function data(value) {
|
|
902
961
|
if (!value)
|
|
@@ -929,26 +988,143 @@ var Novely = (() => {
|
|
|
929
988
|
* Unwraps translatable content to a string value
|
|
930
989
|
*/
|
|
931
990
|
unwrap(content) {
|
|
932
|
-
return
|
|
933
|
-
}
|
|
934
|
-
/**
|
|
935
|
-
* Function that is used for translation
|
|
936
|
-
*/
|
|
937
|
-
t: t9n.t
|
|
991
|
+
return unwrap2(content, true);
|
|
992
|
+
}
|
|
938
993
|
};
|
|
939
994
|
};
|
|
940
995
|
|
|
941
|
-
// src/
|
|
942
|
-
var
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
996
|
+
// src/translations.ts
|
|
997
|
+
var RU = {
|
|
998
|
+
NewGame: "\u041D\u043E\u0432\u0430\u044F \u0438\u0433\u0440\u0430",
|
|
999
|
+
HomeScreen: "\u0413\u043B\u0430\u0432\u043D\u044B\u0439 \u044D\u043A\u0440\u0430\u043D",
|
|
1000
|
+
ToTheGame: "\u041A \u0438\u0433\u0440\u0435",
|
|
1001
|
+
Language: "\u042F\u0437\u044B\u043A",
|
|
1002
|
+
NoSaves: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",
|
|
1003
|
+
LoadSave: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
|
|
1004
|
+
Saves: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",
|
|
1005
|
+
Settings: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",
|
|
1006
|
+
Sumbit: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",
|
|
1007
|
+
GoBack: "\u041D\u0430\u0437\u0430\u0434",
|
|
1008
|
+
DoSave: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435",
|
|
1009
|
+
Auto: "\u0410\u0432\u0442\u043E",
|
|
1010
|
+
Stop: "\u0421\u0442\u043E\u043F",
|
|
1011
|
+
Exit: "\u0412\u044B\u0445\u043E\u0434",
|
|
1012
|
+
Automatic: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435",
|
|
1013
|
+
Manual: "\u0420\u0443\u0447\u043D\u043E\u0435",
|
|
1014
|
+
Remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
1015
|
+
LoadASaveFrom: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043E\u0442",
|
|
1016
|
+
DeleteASaveFrom: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043E\u0442",
|
|
1017
|
+
TextSpeed: "\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0422\u0435\u043A\u0441\u0442\u0430",
|
|
1018
|
+
TextSpeedSlow: "\u041C\u0435\u0434\u043B\u0435\u043D\u043D\u0430\u044F",
|
|
1019
|
+
TextSpeedMedium: "\u0421\u0440\u0435\u0434\u043D\u044F\u044F",
|
|
1020
|
+
TextSpeedFast: "\u0411\u044B\u0441\u0442\u0440\u0430\u044F",
|
|
1021
|
+
TextSpeedAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F",
|
|
1022
|
+
CompleteText: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442",
|
|
1023
|
+
GoForward: "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432\u043F\u0435\u0440\u0451\u0434",
|
|
1024
|
+
ExitDialogWarning: "\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0432\u044B\u0439\u0442\u0438? \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D.",
|
|
1025
|
+
ExitDialogExit: "\u0412\u044B\u0439\u0442\u0438",
|
|
1026
|
+
ExitDialogBack: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u0432 \u0438\u0433\u0440\u0443",
|
|
1027
|
+
OpenMenu: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E",
|
|
1028
|
+
CloseMenu: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E"
|
|
1029
|
+
};
|
|
1030
|
+
var EN = {
|
|
1031
|
+
NewGame: "New Game",
|
|
1032
|
+
HomeScreen: "Home Screen",
|
|
1033
|
+
ToTheGame: "To the Game",
|
|
1034
|
+
Language: "Language",
|
|
1035
|
+
NoSaves: "No saves",
|
|
1036
|
+
LoadSave: "Load",
|
|
1037
|
+
Saves: "Saves",
|
|
1038
|
+
Settings: "Settings",
|
|
1039
|
+
Sumbit: "Submit",
|
|
1040
|
+
GoBack: "Go back",
|
|
1041
|
+
DoSave: "Save",
|
|
1042
|
+
Auto: "Auto",
|
|
1043
|
+
Stop: "Stop",
|
|
1044
|
+
Exit: "Exit",
|
|
1045
|
+
Automatic: "Automatic",
|
|
1046
|
+
Manual: "Manual",
|
|
1047
|
+
Remove: "Remove",
|
|
1048
|
+
LoadASaveFrom: "Load a save from",
|
|
1049
|
+
DeleteASaveFrom: "Delete a save from",
|
|
1050
|
+
TextSpeed: "Text Speed",
|
|
1051
|
+
TextSpeedSlow: "Slow",
|
|
1052
|
+
TextSpeedMedium: "Medium",
|
|
1053
|
+
TextSpeedFast: "Fast",
|
|
1054
|
+
TextSpeedAuto: "Auto",
|
|
1055
|
+
CompleteText: "Complete text",
|
|
1056
|
+
GoForward: "Go forward",
|
|
1057
|
+
ExitDialogWarning: "Are you sure you want to exit? Progress will be saved.",
|
|
1058
|
+
ExitDialogExit: "Exit",
|
|
1059
|
+
ExitDialogBack: "Return to game",
|
|
1060
|
+
OpenMenu: "Open menu",
|
|
1061
|
+
CloseMenu: "Close menu"
|
|
1062
|
+
};
|
|
1063
|
+
var KK = {
|
|
1064
|
+
NewGame: "\u0416\u0430\u04A3\u0430 \u043E\u0439\u044B\u043D",
|
|
1065
|
+
HomeScreen: "\u041D\u0435\u0433\u0456\u0437\u0433\u0456 \u044D\u043A\u0440\u0430\u043D",
|
|
1066
|
+
ToTheGame: "\u041E\u0439\u044B\u043D\u0493\u0430",
|
|
1067
|
+
Language: "\u0422\u0456\u043B",
|
|
1068
|
+
NoSaves: "\u0421\u0430\u049B\u0442\u0430\u0443 \u0436\u043E\u049B",
|
|
1069
|
+
LoadSave: "\u0416\u04AF\u043A\u0442\u0435\u0443",
|
|
1070
|
+
Saves: "\u0421\u0430\u049B\u0442\u0430\u0443",
|
|
1071
|
+
Settings: "\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043B\u0435\u0440",
|
|
1072
|
+
Sumbit: "\u0420\u0430\u0441\u0442\u0430\u0443",
|
|
1073
|
+
GoBack: "\u0410\u0440\u0442\u049B\u0430",
|
|
1074
|
+
DoSave: "\u0421\u0430\u049B\u0442\u0430\u0443",
|
|
1075
|
+
Auto: "\u0410\u0432\u0442\u043E",
|
|
1076
|
+
Stop: "\u0422\u043E\u049B\u0442\u0430",
|
|
1077
|
+
Exit: "\u0428\u044B\u0493\u0443",
|
|
1078
|
+
Automatic: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0442\u044B",
|
|
1079
|
+
Manual: "\u049A\u043E\u043B\u043C\u0435\u043D",
|
|
1080
|
+
Remove: "\u0416\u043E\u044E",
|
|
1081
|
+
LoadASaveFrom: "\u0421\u0430\u049B\u0442\u0430\u0443\u0434\u044B \u0436\u04AF\u043A\u0442\u0435\u0443",
|
|
1082
|
+
DeleteASaveFrom: "\u0421\u0430\u049B\u0442\u0430\u0443\u0434\u044B \u0436\u043E\u044E",
|
|
1083
|
+
TextSpeed: "\u041C\u04D9\u0442\u0456\u043D \u0416\u044B\u043B\u0434\u0430\u043C\u0434\u044B\u0493\u044B",
|
|
1084
|
+
TextSpeedSlow: "\u0411\u0430\u044F\u0443",
|
|
1085
|
+
TextSpeedMedium: "\u041E\u0440\u0442\u0430\u0448\u0430",
|
|
1086
|
+
TextSpeedFast: "\u0416\u044B\u043B\u0434\u0430\u043C",
|
|
1087
|
+
TextSpeedAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0442\u044B",
|
|
1088
|
+
CompleteText: "\u041C\u04D9\u0442\u0456\u043D\u0434\u0456 \u0430\u044F\u049B\u0442\u0430\u0443",
|
|
1089
|
+
GoForward: "\u0410\u043B\u0493\u0430 \u0436\u044B\u043B\u0436\u0443",
|
|
1090
|
+
ExitDialogWarning: "\u0421\u0456\u0437 \u0448\u044B\u049B\u049B\u044B\u04A3\u044B\u0437 \u043A\u0435\u043B\u0435\u0442\u0456\u043D\u0456\u043D\u0435 \u0441\u0435\u043D\u0456\u043C\u0434\u0456\u0441\u0456\u0437 \u0431\u0435? \u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441 \u0441\u0430\u049B\u0442\u0430\u043B\u0430\u0434\u044B",
|
|
1091
|
+
ExitDialogExit: "\u0428\u044B\u0493\u0443",
|
|
1092
|
+
ExitDialogBack: "\u041E\u0439\u044B\u043D\u0493\u0430 \u043E\u0440\u0430\u043B\u0443",
|
|
1093
|
+
OpenMenu: "\u041C\u04D9\u0437\u0456\u0440\u0434\u0456 \u0430\u0448\u044B\u04A3\u044B\u0437",
|
|
1094
|
+
CloseMenu: "\u041C\u04D9\u0437\u0456\u0440\u0434\u0456 \u0436\u0430\u0431\u0443"
|
|
1095
|
+
};
|
|
1096
|
+
var JP = {
|
|
1097
|
+
NewGame: "\u300C\u65B0\u3057\u3044\u30B2\u30FC\u30E0\u300D",
|
|
1098
|
+
HomeScreen: "\u30DB\u30FC\u30E0\u753B\u9762",
|
|
1099
|
+
ToTheGame: "\u300C\u30B2\u30FC\u30E0\u306B\u623B\u308B\u300D",
|
|
1100
|
+
Language: "\u8A00\u8A9E",
|
|
1101
|
+
NoSaves: "\u30CE\u30FC\u30BB\u30FC\u30D6",
|
|
1102
|
+
LoadSave: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
|
|
1103
|
+
Saves: "\u4FDD\u5B58",
|
|
1104
|
+
Settings: "\u8A2D\u5B9A",
|
|
1105
|
+
Sumbit: "\u78BA\u8A8D",
|
|
1106
|
+
GoBack: "\u300C\u623B\u308B\u300D",
|
|
1107
|
+
DoSave: "\u4FDD\u5B58",
|
|
1108
|
+
Auto: "\u30AA\u30FC\u30C8",
|
|
1109
|
+
Stop: "\u6B62\u307E\u308C",
|
|
1110
|
+
Exit: "\u51FA\u53E3",
|
|
1111
|
+
Automatic: "\u81EA\u52D5",
|
|
1112
|
+
Manual: "\u30DE\u30CB\u30E5\u30A2\u30EB",
|
|
1113
|
+
Remove: "\u524A\u9664",
|
|
1114
|
+
LoadASaveFrom: "\u30ED\u30FC\u30C9\u30BB\u30FC\u30D6\u304B\u3089",
|
|
1115
|
+
DeleteASaveFrom: "\u304B\u3089\u4FDD\u5B58\u3092\u524A\u9664",
|
|
1116
|
+
TextSpeed: "\u30C6\u30AD\u30B9\u30C8\u30B9\u30D4\u30FC\u30C9",
|
|
1117
|
+
TextSpeedSlow: "\u300C\u9045\u3044\u300D",
|
|
1118
|
+
TextSpeedMedium: "\u30DF\u30C7\u30A3\u30A2\u30E0",
|
|
1119
|
+
TextSpeedFast: "\u300C\u901F\u3044\u300D",
|
|
1120
|
+
TextSpeedAuto: "\u81EA\u52D5",
|
|
1121
|
+
CompleteText: "\u30C6\u30AD\u30B9\u30C8\u3092\u5B8C\u6210\u3055\u305B\u308B",
|
|
1122
|
+
GoForward: "\u5148\u306B\u884C\u304F",
|
|
1123
|
+
ExitDialogWarning: "\u672C\u5F53\u306B\u7D42\u4E86\u3057\u307E\u3059\u304B\uFF1F\u9032\u884C\u72B6\u6CC1\u306F\u4FDD\u5B58\u3055\u308C\u307E\u3059",
|
|
1124
|
+
ExitDialogExit: "\u7D42\u4E86",
|
|
1125
|
+
ExitDialogBack: "\u30B2\u30FC\u30E0\u306B\u623B\u308B",
|
|
1126
|
+
OpenMenu: "\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F",
|
|
1127
|
+
CloseMenu: "\u30E1\u30CB\u30E5\u30FC\u3092\u9589\u3058\u308B"
|
|
952
1128
|
};
|
|
953
1129
|
return __toCommonJS(src_exports);
|
|
954
1130
|
})();
|