Skip to content

Commit 77af6d0

Browse files
committed
docs: add i18n example
1 parent b8e681e commit 77af6d0

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

apps/playground/src/instruments/examples/interactive/Multilingual-Interactive/index.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* eslint-disable perfectionist/sort-objects */
22

3-
import { createI18Next, defineInstrument } from '/runtime/v1/@opendatacapture/runtime-core';
3+
import { defineInstrument } from '/runtime/v1/@opendatacapture/runtime-core';
44
import { z } from '/runtime/v1/[email protected]';
55

6-
import { translations } from './translations.ts';
6+
import { translator } from './translator.ts';
77

88
export default defineInstrument({
99
kind: 'INTERACTIVE',
@@ -18,27 +18,27 @@ export default defineInstrument({
1818
},
1919
content: {
2020
render(done) {
21-
const i18n = createI18Next({ translations });
21+
translator.init();
2222

2323
const changeLanguageButton = document.createElement('button');
24-
changeLanguageButton.textContent = i18n.t('changeLanguage');
24+
changeLanguageButton.textContent = translator.t('changeLanguage');
2525
document.body.appendChild(changeLanguageButton);
2626

2727
changeLanguageButton.addEventListener('click', () => {
28-
i18n.changeLanguage(i18n.resolvedLanguage === 'en' ? 'fr' : 'en');
28+
translator.changeLanguage(translator.resolvedLanguage === 'en' ? 'fr' : 'en');
2929
});
3030

3131
const submitButton = document.createElement('button');
32-
submitButton.textContent = i18n.t('submit');
32+
submitButton.textContent = translator.t('submit');
3333
document.body.appendChild(submitButton);
3434

35-
i18n.onLanguageChange = () => {
36-
changeLanguageButton.textContent = i18n.t('changeLanguage');
37-
submitButton.textContent = i18n.t('submit');
35+
translator.onLanguageChange = () => {
36+
changeLanguageButton.textContent = translator.t('changeLanguage');
37+
submitButton.textContent = translator.t('submit');
3838
};
3939

4040
submitButton.addEventListener('click', () => {
41-
done({ message: i18n.t('greetings.hello') });
41+
done({ message: translator.t('greetings.hello') });
4242
});
4343
}
4444
},
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Translator } from '/runtime/v1/@opendatacapture/runtime-core';
2+
3+
export const translator = new Translator({
4+
translations: {
5+
changeLanguage: {
6+
en: 'Change Language',
7+
fr: 'Changer de langue'
8+
},
9+
greetings: {
10+
hello: {
11+
en: 'Hello',
12+
fr: 'Bonjour'
13+
}
14+
},
15+
submit: {
16+
en: 'Submit',
17+
fr: 'Soumettre'
18+
}
19+
}
20+
});

0 commit comments

Comments
 (0)