Skip to content

Commit 33a7f41

Browse files
authored
Merge pull request #46 from Rodak123/main
Easier language implementation + Updated font
2 parents 7c5d45a + 03865bd commit 33a7f41

File tree

7 files changed

+199
-26
lines changed

7 files changed

+199
-26
lines changed

data/page_data.json

Lines changed: 177 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,47 +29,84 @@
2929
"title": "The Oregon Trail",
3030
"choices": [
3131
{
32-
"text": "Travel the trail",
32+
"text": {
33+
"en": "Travel the trail",
34+
"de": "Befahre die Spur"
35+
},
3336
"action": {
3437
"type": "changePage",
3538
"newPageName": "occupation"
3639
}
3740
},
3841
{
39-
"text": "Learn about the trail",
42+
"text": {
43+
"en": "Learn about the trail",
44+
"de": "Mehr uber die Spur"
45+
},
4046
"action": {
4147
"type": "changePage",
4248
"newPageName": "about_game"
4349
}
4450
},
4551
{
46-
"text": "See the Oregon Top Ten",
52+
"text": {
53+
"en": "See the Oregon Top Ten",
54+
"de": "sehe Oregon Top Ten an"
55+
},
4756
"action": {
4857
"type": "changePage",
4958
"newPageName": ""
5059
}
5160
},
5261
{
53-
"text": "Turn sound off",
62+
"text": {
63+
"en": "Turn sound off",
64+
"de": "Ton ausschalten"
65+
},
5466
"action": {
5567
"type": "toggleSetting",
5668
"setting": "sound",
5769
"secondAction": {
5870
"type": "changeText",
59-
"texts": ["Turn sound off", "Turn sound on"],
71+
"texts": [
72+
{
73+
"en": "Turn sound off",
74+
"de": "Ton ausschalten"
75+
},
76+
{
77+
"en": "Turn sound on",
78+
"de": "Ton anschalten"
79+
}
80+
],
6081
"current": 0
6182
}
6283
}
6384
},
6485
{
65-
"text": "Open the test page",
86+
"text": {
87+
"en": "Open the test page",
88+
"de": "Testseite aufmachen"
89+
},
6690
"action": {
6791
"type": "changePage",
6892
"newPageName": "test"
6993
}
94+
},
95+
{
96+
"text": {
97+
"en": "Change Language",
98+
"de": "Sprache aendern"
99+
},
100+
"action": {
101+
"type": "changePage",
102+
"newPageName": "language"
103+
}
70104
}
71105
],
72-
"prompt": "What is your choice?",
106+
"prompt": {
107+
"en": "What is your choice?",
108+
"de": "Was ist deine Wahl?"
109+
},
73110
"img": "img/title.png",
74111
"content": {
75112
"textIndent": 5
@@ -81,45 +118,66 @@
81118
"type": "choice",
82119
"showInput": true,
83120
"data": {
84-
"title": ["Many kinds of people made the", "trip to Oregon."],
121+
"title": {
122+
"en": ["Many kinds of people made the", "trip to Oregon."],
123+
"de": ["Viele Arten von Menschen haben das gemacht", "Reise nach Oregon."]
124+
},
85125
"choices": [
86126
{
87-
"text": "Be a banker from Boston",
127+
"text": {
128+
"en": "Be a banker from Boston",
129+
"de": "Sei ein Banker aus Boston"
130+
},
88131
"action": {
89132
"type": "changePage",
90133
"newPageName": ""
91134
}
92135
},
93136
{
94-
"text": "Be a carpenter from Ohio",
137+
"text": {
138+
"en": "Be a carpenter from Ohio",
139+
"de": "Seien Sie ein Zimmermann aus Ohio"
140+
},
95141
"action": {
96142
"type": "changePage",
97143
"newPageName": ""
98144
}
99145
},
100146
{
101-
"text": "Be a farmer from Illinois",
147+
"text": {
148+
"en": "Be a farmer from Illinois",
149+
"de": "Sei ein Bauer aus Illinois"
150+
},
102151
"action": {
103152
"type": "changePage",
104153
"newPageName": ""
105154
}
106155
},
107156
{
108-
"text": ["Find out the differences", "between theese choices"],
157+
"text": {
158+
"en": ["Find out the differences", "between theese choices"],
159+
"de": ["Finden Sie die Unterschiede heraus", "zwischen diesen Entscheidungen"]
160+
},
109161
"action": {
110162
"type": "changePage",
111163
"newPageName": ""
112164
}
113165
},
114166
{
115-
"text": "Return back",
167+
"text": {
168+
"en": "Return back",
169+
"de": "Kehren Sie zurück"
170+
},
116171
"action": {
117172
"type": "changePage",
118173
"newPageName": "main_menu"
119174
}
120175
}
121176
],
122-
"prompt": "What is your choice?",
177+
"prompt": {
178+
"en": "What is your choice?",
179+
"de": "Was ist deine Wahl?"
180+
},
123181
"img": "",
124182
"content": {
125183
"textIndent": 2
@@ -133,17 +191,14 @@
133191
"data": {
134192
"title": "The Oregon Trail",
135193
"prompt": "Press SPACE BAR to continue",
136-
"text": [
137-
"Try taking a journey by",
138-
"covered wagon across 2000",
139-
"miles of plains, rivers, and",
140-
"mountains. Try! On the",
141-
"plains, will you slosh your",
142-
"oxen through mud and",
143-
"water-filled ruts or will you",
144-
"plod through dust six inches",
145-
"deep?"
146-
],
194+
"text": {
195+
"en": [
196+
"Try taking a journey by covered wagon across 2000 miles of plains, rivers, and mountains. Try! On the plains, will you slosh your oxen through mud and water-filled ruts or will you plod through dust six inches deep?"
197+
],
198+
"de": [
199+
"Versuchen Sie, eine Reise mit einem Planwagen über 2000 Meilen von Ebenen, Flüssen und Bergen zu unternehmen. Versuchen! Werden Sie Ihre Ochsen in der Ebene durch schlammige und wassergefüllte Furchen schwappen oder durch sechs Zoll tiefen Staub stapfen?"
200+
]
201+
},
147202
"action": {
148203
"type": "changePage",
149204
"newPageName": "main_menu"
@@ -156,6 +211,103 @@
156211
},
157212
{
158213
"name": "test"
214+
},
215+
{
216+
"name": "language",
217+
"type": "choice",
218+
"showInput": true,
219+
"data": {
220+
"title": {
221+
"en": "Choose your display language",
222+
"de": "Wählen Sie Ihre Anzeigesprache"
223+
},
224+
"choices": [
225+
{
226+
"text": {
227+
"en": "English",
228+
"de": "Englisch"
229+
},
230+
"action": {
231+
"type": "changeLanguage",
232+
"language": "en",
233+
"secondAction": {
234+
"type": "changePage",
235+
"newPageName": "main_menu"
236+
}
237+
}
238+
},
239+
{
240+
"text": {
241+
"en": "Deutsch",
242+
"de": "Deutsch"
243+
},
244+
"action": {
245+
"type": "changeLanguage",
246+
"language": "de",
247+
"secondAction": {
248+
"type": "changePage",
249+
"newPageName": "main_menu"
250+
}
251+
}
252+
},
253+
{
254+
"text": {
255+
"en": "Italiano",
256+
"de": "Italienisch"
257+
},
258+
"action": {
259+
"type": "changeLanguage",
260+
"language": "it",
261+
"secondAction": {
262+
"type": "changePage",
263+
"newPageName": "main_menu"
264+
}
265+
}
266+
},
267+
{
268+
"text": {
269+
"en": "Czech",
270+
"de": "Tschechisch"
271+
},
272+
"action": {
273+
"type": "changeLanguage",
274+
"language": "cz",
275+
"secondAction": {
276+
"type": "changePage",
277+
"newPageName": "main_menu"
278+
}
279+
}
280+
},
281+
{
282+
"text": {
283+
"en": "Add new language",
284+
"de": "Neue Sprache hinzufuegen"
285+
},
286+
"action": {
287+
"type": "changePage",
288+
"newPageName": "test"
289+
}
290+
},
291+
{
292+
"text": {
293+
"en": "Cancel",
294+
"de": "beenden"
295+
},
296+
"action": {
297+
"type": "changePage",
298+
"newPageName": "main_menu"
299+
}
300+
}
301+
],
302+
"prompt": {
303+
"en": "What is your choice?",
304+
"de": "Was ist deine Wahl?"
305+
},
306+
"img": "",
307+
"content": {
308+
"textIndent": 2
309+
}
310+
}
159311
}
160312
]
161313
}

fonts/codegon-mono.ttf

12.7 KB
Binary file not shown.

fonts/codegon.ttf

12.7 KB
Binary file not shown.

js/page.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,24 @@ class Page {
101101
this.renderPosition.y += offset;
102102
}
103103

104-
renderText(indent, lines, prefix) {
104+
getLinesFromTextObject(textObject) {
105+
let lines = textObject[SETTINGS.language];
106+
if (lines === undefined) {
107+
if (textObject instanceof Object) {
108+
lines = Object.values(textObject)[0];
109+
} else {
110+
lines = textObject; // if no translations avaiable
111+
}
112+
}
105113
if (lines instanceof Array == false) {
106114
lines = [lines];
107115
}
116+
return lines;
117+
}
118+
119+
renderText(indent, textObject, prefix) {
120+
const lines = this.getLinesFromTextObject(textObject);
121+
108122
let x = this.renderPosition.x + indent * this.fontSize;
109123

110124
for (var i = 0; i < lines.length; i++) {

js/page_manager.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ class PageManager {
2323
goToStart: (actionData) => {
2424
this.changeToStartPage();
2525
},
26+
changeLanguage: (actionData) => {
27+
SETTINGS.language = actionData.action.language;
28+
},
2629
};
2730

2831
/*

js/page_types/info.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ class Info extends Page {
22
loadData(data) {
33
super.loadData(data);
44

5+
const img = data.img;
6+
if (img.length != 0) this.img = loadImage(img);
7+
58
this.loadImportantVariable(data, 'prompt');
69
this.loadImportantVariable(data, 'action');
710
this.loadImportantVariable(data, 'text');

js/sketch.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ p5.disableFriendlyErrors = true;
44
const SETTINGS = {
55
sound: true,
66
scale: 2,
7+
language: 'en',
78
};
89

910
let data;

0 commit comments

Comments
 (0)