-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathMetaStepTranslator.js
More file actions
252 lines (249 loc) · 13.8 KB
/
Copy pathMetaStepTranslator.js
File metadata and controls
252 lines (249 loc) · 13.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
// @ts-check
/**
* @typedef {import('../types').InAppTutorialFlowMetaStep} InAppTutorialFlowMetaStep
* @typedef {import('../types').InAppTutorialFlowStep} InAppTutorialFlowStep
*/
/**
* @param {InAppTutorialFlowMetaStep} metaStep
* @returns {InAppTutorialFlowStep[]}
*/
const translateMetaStep = (metaStep) => {
switch (metaStep.metaKind) {
case 'launch-preview':
const isStandalone =
metaStep.nextStep !== 'previewLaunched' &&
!!metaStep.nextStep.clickOnTooltipButton;
return [
{
id: metaStep.id,
elementToHighlightId: '#toolbar-preview-button',
nextStepTrigger:
metaStep.nextStep === 'previewLaunched'
? {
previewLaunched: true,
inGameMessage: metaStep.inGameMessage,
inGameTouchMessage: metaStep.inGameTouchMessage,
inGameMessagePosition: metaStep.inGameMessagePosition,
}
: {
clickOnTooltipButton: metaStep.nextStep.clickOnTooltipButton,
},
tooltip: {
standalone: isStandalone,
description: metaStep.description || {
messageByLocale: {
en: "We're done! Let's test our game to see the changes we've made! Click on the **Preview** button.",
fr: 'Nous avons terminé ! Testons notre jeu pour voir les changements que nous avons apportés ! Cliquez sur le bouton **Aperçu**.',
ar: 'حسنًا، لقد انتهينا! هيّا نختبر لعبتنا لنرى التغييرات التي قمنا بها! الضغط على الزر **معاينة**.',
de: 'Wir sind fertig! Lassen Sie uns unser Spiel testen, um die Änderungen zu sehen, die wir vorgenommen haben! Klicken Sie auf die **Vorschau**-Schaltfläche.',
es: '¡Hemos terminado! ¡Probemos nuestro juego para ver los cambios que hemos hecho! Haga clic en el botón **Vista previa**.',
fi: 'Olemme valmiita! Testataan peliämme nähdäksemme tekemämme muutokset! Klikkaa **Esikatselu**-painiketta.',
it: 'abbiamo finito! Proviamo il nostro gioco per vedere le modifiche che abbiamo apportato! Clicca sul pulsante **Anteprima**.',
tr: 'Tamamlandık! Yaptığımız değişiklikleri görmek için oyunumuzu test edelim! **Önizleme** düğmesine tıklayın.',
ja: '完了です!私たちが行った変更を確認するためにゲームをテストしましょう!**プレビュー**ボタンをクリックします。',
ko: '우리는 끝났습니다! 우리가 한 변경 사항을 확인하기 위해 게임을 테스트해 봅시다! **미리보기** 버튼을 클릭합니다.',
pl: 'Skończyliśmy! Przetestujmy naszą grę, aby zobaczyć zmiany, jakie wprowadziliśmy! Kliknij przycisk **Podgląd**.',
pt: 'Nós terminamos! Vamos testar nosso jogo para ver as mudanças que fizemos! Clique no botão **Visualizar**.',
ru: 'Мы закончили! Давайте протестируем нашу игру, чтобы увидеть изменения, которые мы внесли! Нажмите на кнопку **Предварительный просмотр**.',
sl: 'Končali smo! Testirajmo našo igro, da vidimo spremembe, ki smo jih naredili! Kliknite na gumb **Predogled**.',
sq: 'Kemi përfunduar! Le të testojmë lojën tonë për të parë ndryshimet që kemi bërë! Kliko në butonin **Parashiko**.',
th: 'เราเสร็จแล้ว! มาทดสอบเกมของเราเพื่อดูการเปลี่ยนแปลงที่เราได้ทำ! คลิกที่ปุ่ม **ตัวอย่าง**',
uk: 'Ми закінчили! Давайте протестуємо нашу гру, щоб побачити зміни, які ми зробили! Натисніть на кнопку **Попередній перегляд**.',
zh: '我们完成了!让我们测试游戏,看看我们所做的更改!点击**预览**按钮。',
},
},
placement: isStandalone ? undefined : 'bottom',
},
},
];
case 'add-behavior':
return [
{
elementToHighlightId: '#toolbar-open-objects-panel-button',
nextStepTrigger: {
presenceOfElement: '#add-new-object-button',
},
tooltip: {
description: {
messageByLocale: {
en: 'Open the **Objects** panel.',
fr: 'Ouvrez le panneau des **objets**.',
ar: 'فتح لوحة **الكائنات**.',
de: 'Öffnen Sie das **Objekte**-Panel.',
es: 'Abre el panel de **objetos**.',
fi: 'Avaa **Objektit**-paneeli.',
it: 'Apri il pannello **Oggetti**.',
tr: 'Nesneler panelini açın.',
ja: '**オブジェクト**パネルを開いてください。',
ko: '**오브젝트** 패널을 엽니다.',
pl: 'Otwórz panel **Obiekty**.',
pt: 'Abra o painel de **objetos**.',
ru: 'Откройте панель **Объекты**.',
sl: 'Odpri panel **Predmeti**.',
sq: 'Hapni panelin e **objekteve**.',
th: 'เปิดแผงควบคุม **วัตถุ**',
uk: "Відкрийте панель **Об'єкти**.",
zh: '打开**对象**面板。',
},
},
placement: 'bottom',
mobilePlacement: 'top',
},
skippable: true,
},
{
elementToHighlightId: `objectInObjectsList:${metaStep.objectKey}`,
nextStepTrigger: {
presenceOfElement: '#object-editor-dialog',
},
tooltip: {
placement: 'top',
description: metaStep.objectHighlightDescription,
...(metaStep.objectHighlightTouchDescription
? { touchDescription: metaStep.objectHighlightTouchDescription }
: undefined),
},
},
{
elementToHighlightId: '#behaviors-tab',
nextStepTrigger: {
presenceOfElement: '#add-behavior-button',
},
tooltip: {
description: {
messageByLocale: {
en: 'See the **behaviors** of the **object** here.',
fr: "Les **comportements** de **l'objet** se trouvent dans cet onglet.",
ar: 'رؤية **سلوكيات الكائن** من هنا.',
de: 'Sehen Sie sich die **Verhaltensweisen** des **Objekts** hier an.',
es: 'Los **comportamientos** del **objeto** se encuentran en esta pestaña.',
fi: 'Katso **objektin käyttäytymiset** täältä.',
it: "Vedi i **comportamenti** dell'**oggetto** qui.",
tr: '**Nesnenin** **davranışlarını** burada görün.',
ja: 'ここに **オブジェクト** の **動作** を見る。',
ko: '여기서 **객체**의 **동작**을 확인하세요.',
pl: 'Zobacz **akcje** **obiektu** tutaj.',
pt: 'Veja os **comportamentos** do **objeto** aqui.',
ru: 'Смотрите **поведение** **объекта** здесь.',
sl: 'Oglejte si **vedenja** **predmeta** tukaj.',
sq: 'Shikoje **veprimet** te **objektit** ketu.',
th: 'ดู **พฤติกรรม** ของ **วัตถุ** ที่นี่',
uk: "Дивіться **поведінку** **об'єкта** тут.",
zh: '在这里查看 **对象** 的 **动作**。',
},
},
placement: 'bottom',
},
skippable: true,
isOnClosableDialog: true,
},
{
elementToHighlightId: '#add-behavior-button',
nextStepTrigger: {
presenceOfElement: metaStep.behaviorListItemId,
},
tooltip: {
description: {
messageByLocale: {
en: `Let's add the **${metaStep.behaviorDisplayNameByLocale['en']}** behavior.`,
fr: `Ajoutons le comportement **${metaStep.behaviorDisplayNameByLocale['fr']}**.`,
ar: `هيّا نقوم بإضافة السلوك **${metaStep.behaviorDisplayNameByLocale['ar']}**.`,
de: `Fügen wir das **${metaStep.behaviorDisplayNameByLocale['de']}**-Verhalten hinzu.`,
es: `Agreguemos el comportamiento **${metaStep.behaviorDisplayNameByLocale['es']}**.`,
fi: `Lisätään **${metaStep.behaviorDisplayNameByLocale['fi']}**-käyttäytyminen.`,
it: `Aggiungiamo il comportamento **${metaStep.behaviorDisplayNameByLocale['it']}**.`,
tr: `**${metaStep.behaviorDisplayNameByLocale['tr']}** davranışını ekleyelim.`,
ja: `**${metaStep.behaviorDisplayNameByLocale['ja']}** の動作を追加しましょう。`,
ko: `**${metaStep.behaviorDisplayNameByLocale['ko']}** 동작을 추가해 봅시다.`,
pl: `Dodajmy zachowanie **${metaStep.behaviorDisplayNameByLocale['pl']}**.`,
pt: `Vamos adicionar o comportamento **${metaStep.behaviorDisplayNameByLocale['pt']}**.`,
ru: `Добавим **поведение ${metaStep.behaviorDisplayNameByLocale['ru']}**.`,
sl: `Dodajmo **vedenje ${metaStep.behaviorDisplayNameByLocale['sl']}**.`,
sq: `Hajde te shtojme **${metaStep.behaviorDisplayNameByLocale['sq']}** verpim.`,
th: `เพิ่ม **${metaStep.behaviorDisplayNameByLocale['th']}** พฤติกรรม`,
uk: `Додайте **поведінку ${metaStep.behaviorDisplayNameByLocale['uk']}**.`,
zh: `添加 **${metaStep.behaviorDisplayNameByLocale['zh']}** 动作。`,
},
},
},
isOnClosableDialog: true,
},
{
elementToHighlightId: metaStep.behaviorListItemId,
nextStepTrigger: {
presenceOfElement: metaStep.behaviorParameterPanelId,
},
tooltip: {
description: {
messageByLocale: {
en: `Select the ${metaStep.behaviorDisplayNameByLocale['en']} behavior.`,
fr: `Sélectionnez le comportement ${metaStep.behaviorDisplayNameByLocale['fr']}.`,
ar: `تحديد السلوك ${metaStep.behaviorDisplayNameByLocale['ar']}.`,
de: `Wählen Sie das ${metaStep.behaviorDisplayNameByLocale['de']}-Verhalten aus.`,
es: `Selecciona el comportamiento ${metaStep.behaviorDisplayNameByLocale['es']}.`,
fi: `Valitse ${metaStep.behaviorDisplayNameByLocale['fi']} käyttäytyminen.`,
it: `Seleziona il comportamento ${metaStep.behaviorDisplayNameByLocale['it']}.`,
tr: `${metaStep.behaviorDisplayNameByLocale['tr']} davranışını seçin.`,
ja: `${metaStep.behaviorDisplayNameByLocale['ja']} の動作を選択します。`,
ko: `${metaStep.behaviorDisplayNameByLocale['ko']} 동작을 선택하세요.`,
pl: `Wybierz zachowanie ${metaStep.behaviorDisplayNameByLocale['pl']}.`,
pt: `Selecione o comportamento ${metaStep.behaviorDisplayNameByLocale['pt']}.`,
ru: `Выберите поведение ${metaStep.behaviorDisplayNameByLocale['ru']}.`,
sl: `Izberite vedenje ${metaStep.behaviorDisplayNameByLocale['sl']}.`,
sq: `Selekto ${metaStep.behaviorDisplayNameByLocale['sq']} veprim.`,
th: `เลือกพฤติกรรม ${metaStep.behaviorDisplayNameByLocale['th']}`,
uk: `Виберіть поведінку ${metaStep.behaviorDisplayNameByLocale['uk']}.`,
zh: `选择 ${metaStep.behaviorDisplayNameByLocale['zh']} 动作。`,
},
},
},
isOnClosableDialog: true,
},
...(metaStep.parameters
? metaStep.parameters.map((parameterData) => ({
elementToHighlightId: `${metaStep.behaviorParameterPanelId} ${parameterData.parameterId}`,
nextStepTrigger: {
valueEquals: parameterData.expectedValue,
},
tooltip: {
description: parameterData.description,
},
isOnClosableDialog: true,
}))
: []),
{
elementToHighlightId: '#object-editor-dialog #apply-button',
nextStepTrigger: {
absenceOfElement: '#object-editor-dialog',
},
tooltip: {
description: metaStep.finishedConfigurationDescription || {
messageByLocale: {
en: "We're done.",
fr: 'Nous avons terminé.',
ar: 'انتهينا.',
de: 'Wir sind fertig.',
es: 'Hemos terminado.',
fi: 'Olemme valmiita.',
it: 'Abbiamo finito.',
tr: 'Tamamlandık.',
ja: '完了です。',
ko: '끝났습니다.',
pl: 'Skończyliśmy.',
pt: 'Terminamos.',
ru: 'Мы закончили.',
sl: 'Končali smo.',
sq: 'Kemi përfunduar.',
th: 'เราเสร็จแล้ว',
uk: 'Ми закінчили.',
zh: '我们完成了。',
},
},
},
},
];
default:
return [];
}
};
exports.translateMetaStep = translateMetaStep;