@novely/core 0.12.5 → 0.14.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 +83 -29
- package/dist/index.global.js +269 -82
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +268 -56
- package/dist/index.js.map +1 -1
- package/package.json +60 -61
package/dist/index.js
CHANGED
|
@@ -76,13 +76,20 @@ var findLastIndex = (array, fn) => {
|
|
|
76
76
|
}
|
|
77
77
|
return -1;
|
|
78
78
|
};
|
|
79
|
-
var
|
|
79
|
+
var createControlledPromise = () => {
|
|
80
80
|
let resolve, reject;
|
|
81
81
|
const promise = new Promise((res, rej) => {
|
|
82
82
|
resolve = res;
|
|
83
83
|
reject = rej;
|
|
84
84
|
});
|
|
85
|
-
return {
|
|
85
|
+
return {
|
|
86
|
+
resolve,
|
|
87
|
+
reject,
|
|
88
|
+
promise,
|
|
89
|
+
reset() {
|
|
90
|
+
Object.assign(this, createControlledPromise());
|
|
91
|
+
}
|
|
92
|
+
};
|
|
86
93
|
};
|
|
87
94
|
var findLastPathItemBeforeItemOfType = (path, name) => {
|
|
88
95
|
const index = findLastIndex(path, ([_name, _value], next) => {
|
|
@@ -104,6 +111,20 @@ var noop = () => {
|
|
|
104
111
|
var isAction = (element) => {
|
|
105
112
|
return Array.isArray(element) && isString(element[0]);
|
|
106
113
|
};
|
|
114
|
+
var flattenStory = (story) => {
|
|
115
|
+
const entries = Object.entries(story).map(([name, items]) => {
|
|
116
|
+
const flat = (item) => {
|
|
117
|
+
return item.flatMap((data) => {
|
|
118
|
+
const type = data[0];
|
|
119
|
+
if (Array.isArray(type))
|
|
120
|
+
return flat(data);
|
|
121
|
+
return [data];
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
return [name, flat(items)];
|
|
125
|
+
});
|
|
126
|
+
return Object.fromEntries(entries);
|
|
127
|
+
};
|
|
107
128
|
|
|
108
129
|
// src/global.ts
|
|
109
130
|
var PRELOADED_ASSETS = /* @__PURE__ */ new Set();
|
|
@@ -229,15 +250,79 @@ function klona(val) {
|
|
|
229
250
|
return val;
|
|
230
251
|
}
|
|
231
252
|
|
|
253
|
+
// src/translation.ts
|
|
254
|
+
var RGX = /{{(.*?)}}/g;
|
|
255
|
+
var split = (input, delimeters) => {
|
|
256
|
+
const output = [];
|
|
257
|
+
for (const delimeter of delimeters) {
|
|
258
|
+
if (!input)
|
|
259
|
+
break;
|
|
260
|
+
const [start, end] = input.split(delimeter, 2);
|
|
261
|
+
output.push(start);
|
|
262
|
+
input = end;
|
|
263
|
+
}
|
|
264
|
+
output.push(input);
|
|
265
|
+
return output;
|
|
266
|
+
};
|
|
267
|
+
var unwrap = (c) => {
|
|
268
|
+
if (Array.isArray(c)) {
|
|
269
|
+
return c.map((item) => unwrap(item)).join("<br>");
|
|
270
|
+
}
|
|
271
|
+
if (typeof c === "function") {
|
|
272
|
+
return unwrap(c());
|
|
273
|
+
}
|
|
274
|
+
return c;
|
|
275
|
+
};
|
|
276
|
+
var replace = (str2, obj, pluralization, actions, pr) => {
|
|
277
|
+
return unwrap(str2).replaceAll(RGX, (x, key, y) => {
|
|
278
|
+
x = 0;
|
|
279
|
+
y = obj;
|
|
280
|
+
const [pathstr, plural, action] = split(key.trim(), ["@", "%"]);
|
|
281
|
+
if (!pathstr) {
|
|
282
|
+
return "";
|
|
283
|
+
}
|
|
284
|
+
const path = pathstr.split(".");
|
|
285
|
+
while (y && x < path.length)
|
|
286
|
+
y = y[path[x++]];
|
|
287
|
+
if (plural && pluralization && y && pr) {
|
|
288
|
+
y = pluralization[plural][pr.select(y)];
|
|
289
|
+
}
|
|
290
|
+
const actionHandler = actions && action && actions[action];
|
|
291
|
+
if (actionHandler)
|
|
292
|
+
y = actionHandler(y);
|
|
293
|
+
return y == null ? "" : y;
|
|
294
|
+
});
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// src/storage.ts
|
|
298
|
+
var localStorageStorage = (options) => {
|
|
299
|
+
return {
|
|
300
|
+
async get() {
|
|
301
|
+
const fallback = { saves: [], data: {}, meta: [] };
|
|
302
|
+
try {
|
|
303
|
+
const value = localStorage.getItem(options.key);
|
|
304
|
+
return value ? JSON.parse(value) : fallback;
|
|
305
|
+
} catch {
|
|
306
|
+
return fallback;
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
async set(data) {
|
|
310
|
+
try {
|
|
311
|
+
localStorage.setItem(options.key, JSON.stringify(data));
|
|
312
|
+
} catch {
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
|
|
232
318
|
// src/novely.ts
|
|
233
|
-
import { replace as replaceT9N } from "@novely/t9n";
|
|
234
319
|
var novely = ({
|
|
235
320
|
characters,
|
|
236
|
-
storage,
|
|
321
|
+
storage = localStorageStorage({ key: "novely-game-storage" }),
|
|
237
322
|
storageDelay = Promise.resolve(),
|
|
238
323
|
renderer: createRenderer,
|
|
239
324
|
initialScreen = "mainmenu",
|
|
240
|
-
|
|
325
|
+
translation,
|
|
241
326
|
languages,
|
|
242
327
|
state: defaultState,
|
|
243
328
|
data: defaultData,
|
|
@@ -249,29 +334,20 @@ var novely = ({
|
|
|
249
334
|
askBeforeExit = true,
|
|
250
335
|
preloadAssets = "lazy"
|
|
251
336
|
}) => {
|
|
252
|
-
|
|
337
|
+
const story = {};
|
|
253
338
|
const times = /* @__PURE__ */ new Set();
|
|
254
339
|
const ASSETS_TO_PRELOAD = /* @__PURE__ */ new Set();
|
|
255
|
-
const assetsLoaded =
|
|
340
|
+
const assetsLoaded = createControlledPromise();
|
|
256
341
|
defaultData ||= {};
|
|
257
342
|
defaultState ||= {};
|
|
258
343
|
const intime = (value) => {
|
|
259
344
|
return times.add(value), value;
|
|
260
345
|
};
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
const type = data2[0];
|
|
267
|
-
if (Array.isArray(type))
|
|
268
|
-
return flat(data2);
|
|
269
|
-
return [data2];
|
|
270
|
-
});
|
|
271
|
-
};
|
|
272
|
-
return [name, flat(items)];
|
|
273
|
-
})
|
|
274
|
-
);
|
|
346
|
+
const script = (part) => {
|
|
347
|
+
Object.assign(story, flattenStory(part));
|
|
348
|
+
};
|
|
349
|
+
const withStory = async (story2) => {
|
|
350
|
+
script(story2);
|
|
275
351
|
if (preloadAssets === "blocking" && ASSETS_TO_PRELOAD.size > 0) {
|
|
276
352
|
renderer.ui.showScreen("loading");
|
|
277
353
|
await renderer.misc.preloadImagesBlocking(ASSETS_TO_PRELOAD);
|
|
@@ -313,7 +389,7 @@ var novely = ({
|
|
|
313
389
|
const getDefaultSave = (state2 = {}) => {
|
|
314
390
|
return [
|
|
315
391
|
[
|
|
316
|
-
[
|
|
392
|
+
["jump", "start"],
|
|
317
393
|
[null, 0]
|
|
318
394
|
],
|
|
319
395
|
state2,
|
|
@@ -358,6 +434,9 @@ var novely = ({
|
|
|
358
434
|
storage.set(value);
|
|
359
435
|
};
|
|
360
436
|
const throttledOnStorageDataChange = throttle(onStorageDataChange, throttleTimeout);
|
|
437
|
+
const throttledEmergencyOnStorageDataChange = throttle(() => {
|
|
438
|
+
onStorageDataChange($.get());
|
|
439
|
+
}, 10);
|
|
361
440
|
$.subscribe(throttledOnStorageDataChange);
|
|
362
441
|
const getStoredData = async () => {
|
|
363
442
|
let stored = await storage.get();
|
|
@@ -385,12 +464,10 @@ var novely = ({
|
|
|
385
464
|
const stack = createStack(initial);
|
|
386
465
|
addEventListener("visibilitychange", () => {
|
|
387
466
|
if (document.visibilityState === "hidden") {
|
|
388
|
-
|
|
467
|
+
throttledEmergencyOnStorageDataChange();
|
|
389
468
|
}
|
|
390
469
|
});
|
|
391
|
-
addEventListener("beforeunload",
|
|
392
|
-
onStorageDataChange($.get());
|
|
393
|
-
});
|
|
470
|
+
addEventListener("beforeunload", throttledEmergencyOnStorageDataChange);
|
|
394
471
|
const save = (override = false, type = override ? "auto" : "manual") => {
|
|
395
472
|
if (!$$.get().dataLoaded)
|
|
396
473
|
return;
|
|
@@ -461,7 +538,10 @@ var novely = ({
|
|
|
461
538
|
const characters2 = /* @__PURE__ */ new Set();
|
|
462
539
|
const blocks = [];
|
|
463
540
|
for (const [type, val] of path) {
|
|
464
|
-
if (type ===
|
|
541
|
+
if (type === "jump") {
|
|
542
|
+
precurrent = story;
|
|
543
|
+
current = current[val];
|
|
544
|
+
} else if (type === null) {
|
|
465
545
|
precurrent = current;
|
|
466
546
|
if (isNumber(val)) {
|
|
467
547
|
index++;
|
|
@@ -558,7 +638,11 @@ var novely = ({
|
|
|
558
638
|
let precurrent = story;
|
|
559
639
|
const blocks = [];
|
|
560
640
|
for (const [type, val] of path) {
|
|
561
|
-
|
|
641
|
+
console.log(type, val);
|
|
642
|
+
if (type === "jump") {
|
|
643
|
+
precurrent = story;
|
|
644
|
+
current = current[val];
|
|
645
|
+
} else if (type === null) {
|
|
562
646
|
precurrent = current;
|
|
563
647
|
current = current[val];
|
|
564
648
|
} else if (type === "choice") {
|
|
@@ -597,6 +681,9 @@ var novely = ({
|
|
|
597
681
|
const back = () => {
|
|
598
682
|
return stack.back(), restore(stack.value);
|
|
599
683
|
};
|
|
684
|
+
const t = (key, lang) => {
|
|
685
|
+
return translation[lang].internal[key];
|
|
686
|
+
};
|
|
600
687
|
const renderer = createRenderer({
|
|
601
688
|
characters,
|
|
602
689
|
set,
|
|
@@ -605,9 +692,9 @@ var novely = ({
|
|
|
605
692
|
newGame,
|
|
606
693
|
exit,
|
|
607
694
|
back,
|
|
695
|
+
t,
|
|
608
696
|
stack,
|
|
609
697
|
languages,
|
|
610
|
-
t: t9n.i,
|
|
611
698
|
$,
|
|
612
699
|
$$
|
|
613
700
|
});
|
|
@@ -654,7 +741,7 @@ var novely = ({
|
|
|
654
741
|
}
|
|
655
742
|
return c || "";
|
|
656
743
|
})();
|
|
657
|
-
const run = renderer.dialog(
|
|
744
|
+
const run = renderer.dialog(unwrap2(content), unwrap2(name), character, emotion);
|
|
658
745
|
run(forward, goingBack);
|
|
659
746
|
},
|
|
660
747
|
function([fn]) {
|
|
@@ -670,10 +757,10 @@ var novely = ({
|
|
|
670
757
|
question = "";
|
|
671
758
|
}
|
|
672
759
|
const unwrapped = choices.map(([content, action2, visible]) => {
|
|
673
|
-
return [
|
|
760
|
+
return [unwrap2(content), action2, visible];
|
|
674
761
|
});
|
|
675
762
|
const run = renderer.choices(
|
|
676
|
-
|
|
763
|
+
unwrap2(question),
|
|
677
764
|
unwrapped
|
|
678
765
|
);
|
|
679
766
|
run((selected) => {
|
|
@@ -686,7 +773,7 @@ var novely = ({
|
|
|
686
773
|
},
|
|
687
774
|
jump([scene]) {
|
|
688
775
|
stack.value[0] = [
|
|
689
|
-
[
|
|
776
|
+
["jump", scene],
|
|
690
777
|
[null, -1]
|
|
691
778
|
];
|
|
692
779
|
match("clear", []);
|
|
@@ -712,7 +799,7 @@ var novely = ({
|
|
|
712
799
|
times.clear();
|
|
713
800
|
},
|
|
714
801
|
input([question, onInput, setup]) {
|
|
715
|
-
renderer.input(
|
|
802
|
+
renderer.input(unwrap2(question), onInput, setup)(forward);
|
|
716
803
|
},
|
|
717
804
|
custom([handler]) {
|
|
718
805
|
const result = renderer.custom(handler, goingBack, () => {
|
|
@@ -752,7 +839,7 @@ var novely = ({
|
|
|
752
839
|
match("custom", [handler]);
|
|
753
840
|
},
|
|
754
841
|
text(text) {
|
|
755
|
-
renderer.text(text.map((content) =>
|
|
842
|
+
renderer.text(text.map((content) => unwrap2(content)).join(" "), forward, goingBack);
|
|
756
843
|
},
|
|
757
844
|
exit() {
|
|
758
845
|
if (restoring)
|
|
@@ -817,7 +904,7 @@ var novely = ({
|
|
|
817
904
|
const next = () => {
|
|
818
905
|
const path = stack.value[0];
|
|
819
906
|
const last = path.at(-1);
|
|
820
|
-
if (last && isNull(last[0]) && isNumber(last[1])) {
|
|
907
|
+
if (last && (isNull(last[0]) || last[0] === "jump") && isNumber(last[1])) {
|
|
821
908
|
last[1]++;
|
|
822
909
|
} else {
|
|
823
910
|
path.push([null, 0]);
|
|
@@ -844,15 +931,19 @@ var novely = ({
|
|
|
844
931
|
const interactivity = (value = false) => {
|
|
845
932
|
interacted = value ? interacted + 1 : 0;
|
|
846
933
|
};
|
|
847
|
-
const
|
|
934
|
+
const unwrap2 = (content, global = false) => {
|
|
848
935
|
const {
|
|
849
936
|
data: data2,
|
|
850
937
|
meta: [lang]
|
|
851
938
|
} = $.get();
|
|
852
939
|
const obj = global ? data2 : state();
|
|
853
|
-
const cnt = isFunction(content) ? content(
|
|
940
|
+
const cnt = isFunction(content) ? content() : typeof content === "string" ? content : content[lang];
|
|
854
941
|
const str2 = isFunction(cnt) ? cnt() : cnt;
|
|
855
|
-
|
|
942
|
+
const trans = translation[lang];
|
|
943
|
+
if (trans.actions || trans.plural) {
|
|
944
|
+
return replace(str2, obj, trans.plural, trans.actions, new Intl.PluralRules(trans.tag || lang));
|
|
945
|
+
}
|
|
946
|
+
return replace(str2, obj);
|
|
856
947
|
};
|
|
857
948
|
function data(value) {
|
|
858
949
|
if (!value)
|
|
@@ -885,28 +976,149 @@ var novely = ({
|
|
|
885
976
|
* Unwraps translatable content to a string value
|
|
886
977
|
*/
|
|
887
978
|
unwrap(content) {
|
|
888
|
-
return
|
|
889
|
-
}
|
|
890
|
-
/**
|
|
891
|
-
* Function that is used for translation
|
|
892
|
-
*/
|
|
893
|
-
t: t9n.t
|
|
979
|
+
return unwrap2(content, true);
|
|
980
|
+
}
|
|
894
981
|
};
|
|
895
982
|
};
|
|
896
983
|
|
|
897
|
-
// src/
|
|
898
|
-
var
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
984
|
+
// src/translations.ts
|
|
985
|
+
var RU = {
|
|
986
|
+
NewGame: "\u041D\u043E\u0432\u0430\u044F \u0438\u0433\u0440\u0430",
|
|
987
|
+
HomeScreen: "\u0413\u043B\u0430\u0432\u043D\u044B\u0439 \u044D\u043A\u0440\u0430\u043D",
|
|
988
|
+
ToTheGame: "\u041A \u0438\u0433\u0440\u0435",
|
|
989
|
+
Language: "\u042F\u0437\u044B\u043A",
|
|
990
|
+
NoSaves: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0439 \u043D\u0435\u0442",
|
|
991
|
+
LoadSave: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C",
|
|
992
|
+
Saves: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",
|
|
993
|
+
Settings: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",
|
|
994
|
+
Sumbit: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C",
|
|
995
|
+
GoBack: "\u041D\u0430\u0437\u0430\u0434",
|
|
996
|
+
DoSave: "\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435",
|
|
997
|
+
Auto: "\u0410\u0432\u0442\u043E",
|
|
998
|
+
Stop: "\u0421\u0442\u043E\u043F",
|
|
999
|
+
Exit: "\u0412\u044B\u0445\u043E\u0434",
|
|
1000
|
+
Automatic: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435",
|
|
1001
|
+
Manual: "\u0420\u0443\u0447\u043D\u043E\u0435",
|
|
1002
|
+
Remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
1003
|
+
LoadASaveFrom: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043E\u0442",
|
|
1004
|
+
DeleteASaveFrom: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043E\u0442",
|
|
1005
|
+
TextSpeed: "\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C \u0422\u0435\u043A\u0441\u0442\u0430",
|
|
1006
|
+
TextSpeedSlow: "\u041C\u0435\u0434\u043B\u0435\u043D\u043D\u0430\u044F",
|
|
1007
|
+
TextSpeedMedium: "\u0421\u0440\u0435\u0434\u043D\u044F\u044F",
|
|
1008
|
+
TextSpeedFast: "\u0411\u044B\u0441\u0442\u0440\u0430\u044F",
|
|
1009
|
+
TextSpeedAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F",
|
|
1010
|
+
CompleteText: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442",
|
|
1011
|
+
GoForward: "\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432\u043F\u0435\u0440\u0451\u0434",
|
|
1012
|
+
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.",
|
|
1013
|
+
ExitDialogExit: "\u0412\u044B\u0439\u0442\u0438",
|
|
1014
|
+
ExitDialogBack: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u0432 \u0438\u0433\u0440\u0443",
|
|
1015
|
+
OpenMenu: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E",
|
|
1016
|
+
CloseMenu: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E"
|
|
1017
|
+
};
|
|
1018
|
+
var EN = {
|
|
1019
|
+
NewGame: "New Game",
|
|
1020
|
+
HomeScreen: "Home Screen",
|
|
1021
|
+
ToTheGame: "To the Game",
|
|
1022
|
+
Language: "Language",
|
|
1023
|
+
NoSaves: "No saves",
|
|
1024
|
+
LoadSave: "Load",
|
|
1025
|
+
Saves: "Saves",
|
|
1026
|
+
Settings: "Settings",
|
|
1027
|
+
Sumbit: "Submit",
|
|
1028
|
+
GoBack: "Go back",
|
|
1029
|
+
DoSave: "Save",
|
|
1030
|
+
Auto: "Auto",
|
|
1031
|
+
Stop: "Stop",
|
|
1032
|
+
Exit: "Exit",
|
|
1033
|
+
Automatic: "Automatic",
|
|
1034
|
+
Manual: "Manual",
|
|
1035
|
+
Remove: "Remove",
|
|
1036
|
+
LoadASaveFrom: "Load a save from",
|
|
1037
|
+
DeleteASaveFrom: "Delete a save from",
|
|
1038
|
+
TextSpeed: "Text Speed",
|
|
1039
|
+
TextSpeedSlow: "Slow",
|
|
1040
|
+
TextSpeedMedium: "Medium",
|
|
1041
|
+
TextSpeedFast: "Fast",
|
|
1042
|
+
TextSpeedAuto: "Auto",
|
|
1043
|
+
CompleteText: "Complete text",
|
|
1044
|
+
GoForward: "Go forward",
|
|
1045
|
+
ExitDialogWarning: "Are you sure you want to exit? Progress will be saved.",
|
|
1046
|
+
ExitDialogExit: "Exit",
|
|
1047
|
+
ExitDialogBack: "Return to game",
|
|
1048
|
+
OpenMenu: "Open menu",
|
|
1049
|
+
CloseMenu: "Close menu"
|
|
1050
|
+
};
|
|
1051
|
+
var KK = {
|
|
1052
|
+
NewGame: "\u0416\u0430\u04A3\u0430 \u043E\u0439\u044B\u043D",
|
|
1053
|
+
HomeScreen: "\u041D\u0435\u0433\u0456\u0437\u0433\u0456 \u044D\u043A\u0440\u0430\u043D",
|
|
1054
|
+
ToTheGame: "\u041E\u0439\u044B\u043D\u0493\u0430",
|
|
1055
|
+
Language: "\u0422\u0456\u043B",
|
|
1056
|
+
NoSaves: "\u0421\u0430\u049B\u0442\u0430\u0443 \u0436\u043E\u049B",
|
|
1057
|
+
LoadSave: "\u0416\u04AF\u043A\u0442\u0435\u0443",
|
|
1058
|
+
Saves: "\u0421\u0430\u049B\u0442\u0430\u0443",
|
|
1059
|
+
Settings: "\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043B\u0435\u0440",
|
|
1060
|
+
Sumbit: "\u0420\u0430\u0441\u0442\u0430\u0443",
|
|
1061
|
+
GoBack: "\u0410\u0440\u0442\u049B\u0430",
|
|
1062
|
+
DoSave: "\u0421\u0430\u049B\u0442\u0430\u0443",
|
|
1063
|
+
Auto: "\u0410\u0432\u0442\u043E",
|
|
1064
|
+
Stop: "\u0422\u043E\u049B\u0442\u0430",
|
|
1065
|
+
Exit: "\u0428\u044B\u0493\u0443",
|
|
1066
|
+
Automatic: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0442\u044B",
|
|
1067
|
+
Manual: "\u049A\u043E\u043B\u043C\u0435\u043D",
|
|
1068
|
+
Remove: "\u0416\u043E\u044E",
|
|
1069
|
+
LoadASaveFrom: "\u0421\u0430\u049B\u0442\u0430\u0443\u0434\u044B \u0436\u04AF\u043A\u0442\u0435\u0443",
|
|
1070
|
+
DeleteASaveFrom: "\u0421\u0430\u049B\u0442\u0430\u0443\u0434\u044B \u0436\u043E\u044E",
|
|
1071
|
+
TextSpeed: "\u041C\u04D9\u0442\u0456\u043D \u0416\u044B\u043B\u0434\u0430\u043C\u0434\u044B\u0493\u044B",
|
|
1072
|
+
TextSpeedSlow: "\u0411\u0430\u044F\u0443",
|
|
1073
|
+
TextSpeedMedium: "\u041E\u0440\u0442\u0430\u0448\u0430",
|
|
1074
|
+
TextSpeedFast: "\u0416\u044B\u043B\u0434\u0430\u043C",
|
|
1075
|
+
TextSpeedAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0442\u044B",
|
|
1076
|
+
CompleteText: "\u041C\u04D9\u0442\u0456\u043D\u0434\u0456 \u0430\u044F\u049B\u0442\u0430\u0443",
|
|
1077
|
+
GoForward: "\u0410\u043B\u0493\u0430 \u0436\u044B\u043B\u0436\u0443",
|
|
1078
|
+
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",
|
|
1079
|
+
ExitDialogExit: "\u0428\u044B\u0493\u0443",
|
|
1080
|
+
ExitDialogBack: "\u041E\u0439\u044B\u043D\u0493\u0430 \u043E\u0440\u0430\u043B\u0443",
|
|
1081
|
+
OpenMenu: "\u041C\u04D9\u0437\u0456\u0440\u0434\u0456 \u0430\u0448\u044B\u04A3\u044B\u0437",
|
|
1082
|
+
CloseMenu: "\u041C\u04D9\u0437\u0456\u0440\u0434\u0456 \u0436\u0430\u0431\u0443"
|
|
1083
|
+
};
|
|
1084
|
+
var JP = {
|
|
1085
|
+
NewGame: "\u300C\u65B0\u3057\u3044\u30B2\u30FC\u30E0\u300D",
|
|
1086
|
+
HomeScreen: "\u30DB\u30FC\u30E0\u753B\u9762",
|
|
1087
|
+
ToTheGame: "\u300C\u30B2\u30FC\u30E0\u306B\u623B\u308B\u300D",
|
|
1088
|
+
Language: "\u8A00\u8A9E",
|
|
1089
|
+
NoSaves: "\u30CE\u30FC\u30BB\u30FC\u30D6",
|
|
1090
|
+
LoadSave: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
|
|
1091
|
+
Saves: "\u4FDD\u5B58",
|
|
1092
|
+
Settings: "\u8A2D\u5B9A",
|
|
1093
|
+
Sumbit: "\u78BA\u8A8D",
|
|
1094
|
+
GoBack: "\u300C\u623B\u308B\u300D",
|
|
1095
|
+
DoSave: "\u4FDD\u5B58",
|
|
1096
|
+
Auto: "\u30AA\u30FC\u30C8",
|
|
1097
|
+
Stop: "\u6B62\u307E\u308C",
|
|
1098
|
+
Exit: "\u51FA\u53E3",
|
|
1099
|
+
Automatic: "\u81EA\u52D5",
|
|
1100
|
+
Manual: "\u30DE\u30CB\u30E5\u30A2\u30EB",
|
|
1101
|
+
Remove: "\u524A\u9664",
|
|
1102
|
+
LoadASaveFrom: "\u30ED\u30FC\u30C9\u30BB\u30FC\u30D6\u304B\u3089",
|
|
1103
|
+
DeleteASaveFrom: "\u304B\u3089\u4FDD\u5B58\u3092\u524A\u9664",
|
|
1104
|
+
TextSpeed: "\u30C6\u30AD\u30B9\u30C8\u30B9\u30D4\u30FC\u30C9",
|
|
1105
|
+
TextSpeedSlow: "\u300C\u9045\u3044\u300D",
|
|
1106
|
+
TextSpeedMedium: "\u30DF\u30C7\u30A3\u30A2\u30E0",
|
|
1107
|
+
TextSpeedFast: "\u300C\u901F\u3044\u300D",
|
|
1108
|
+
TextSpeedAuto: "\u81EA\u52D5",
|
|
1109
|
+
CompleteText: "\u30C6\u30AD\u30B9\u30C8\u3092\u5B8C\u6210\u3055\u305B\u308B",
|
|
1110
|
+
GoForward: "\u5148\u306B\u884C\u304F",
|
|
1111
|
+
ExitDialogWarning: "\u672C\u5F53\u306B\u7D42\u4E86\u3057\u307E\u3059\u304B\uFF1F\u9032\u884C\u72B6\u6CC1\u306F\u4FDD\u5B58\u3055\u308C\u307E\u3059",
|
|
1112
|
+
ExitDialogExit: "\u7D42\u4E86",
|
|
1113
|
+
ExitDialogBack: "\u30B2\u30FC\u30E0\u306B\u623B\u308B",
|
|
1114
|
+
OpenMenu: "\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F",
|
|
1115
|
+
CloseMenu: "\u30E1\u30CB\u30E5\u30FC\u3092\u9589\u3058\u308B"
|
|
908
1116
|
};
|
|
909
1117
|
export {
|
|
1118
|
+
EN,
|
|
1119
|
+
JP,
|
|
1120
|
+
KK,
|
|
1121
|
+
RU,
|
|
910
1122
|
localStorageStorage,
|
|
911
1123
|
novely
|
|
912
1124
|
};
|