Skip to content

Commit

Permalink
refactor(intl): Reorganiza código para parecerse a bootcamp.laborator…
Browse files Browse the repository at this point in the history
…ia.la
  • Loading branch information
lupomontero authored and mfdebian committed Mar 2, 2023
1 parent b936235 commit e5ba2f0
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 67 deletions.
26 changes: 0 additions & 26 deletions src/intl/IntlProvider.jsx

This file was deleted.

24 changes: 8 additions & 16 deletions src/intl/es/index.js → src/intl/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const es = {
submit: 'Enviar',
reset: 'Reiniciar',

'projects.js.intro': `
'projects.web-dev.intro': `
<p>
Nuestra propuesta de aprendizaje se basa en
<strong>aprender haciendo</strong>. El foco central de nuestro curriculum
Expand All @@ -28,7 +28,7 @@ const es = {
</p>
`,

'projects.js.level.0': `
'projects.web-dev.level.0': `
<p>
Los proyectos de este nivel se caracterizan por ser <strong>apps vanilla,
todavía sin backend, sin persistencia y sin autenticación</strong>.
Expand All @@ -45,7 +45,7 @@ const es = {
</p>
`,

'projects.js.level.1': `
'projects.web-dev.level.1': `
<p>
Los proyectos de este nivel siguen siendo <strong>apps de una sola vista o
página, vanilla, todavía sin backend, ni persistencia, ni
Expand All @@ -63,7 +63,7 @@ const es = {
</p>
`,

'projects.js.level.2': `
'projects.web-dev.level.2': `
<p>
Los proyectos de este nivel siguen siendo <strong>apps de una sola vista o
página, vanilla, todavía sin backend, ni persistencia, ni
Expand All @@ -80,7 +80,7 @@ const es = {
</p>
`,

'projects.js.level.3': `
'projects.web-dev.level.3': `
<p>
Llegado a este <em>nivel</em> finalmente pasamos a <strong>aplicaciones
con múltiples vistas, aunque todavía vanilla</strong>. También se incluye
Expand All @@ -100,7 +100,7 @@ const es = {
</p>
`,

'projects.js.level.4': `
'projects.web-dev.level.4': `
<p>
Este <em>nivel</em> es mucho más amplio. Acá encontramos proyectos de
frontend usando <strong>frameworks como React, Angular o Vue</strong>, así
Expand All @@ -116,7 +116,7 @@ const es = {
</p>
`,

'projects.js.level.5': `
'projects.web-dev.level.5': `
<p>
A medida que avazamos de nivel, el rango de opciones se va ampliando. En
este nivel tenemos proyectos variados que cubren temas tanto de
Expand All @@ -137,7 +137,7 @@ const es = {
</p>
`,

'projects.js.level.6': `
'projects.web-dev.level.6': `
<p>
Como último nivel tenemos un único proyecto llamado
<em>Job Application</em>. Este proyecto está enfocado en preparación para
Expand Down Expand Up @@ -213,14 +213,6 @@ const es = {

'gym': 'Ejercicios',

// 'exercise.problem': 'Enunciado',
// 'exercise.code': 'Código',
'exercise.runTests': 'Ejecutar pruebas',
// 'exercise.reset': 'Resetear',

'exercise-test-results.failures': '{failures} de {tests} tests fallaron',
'exercise-test-results.passes': '{passes} tests pasaron ;-)',

'quiz-results': 'Respuestas correctas: {success}/{total}',
};

Expand Down
40 changes: 40 additions & 0 deletions src/intl/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { createContext, useContext, useEffect } from 'react';
import { IntlProvider as BaseIntlProvider, FormattedMessage } from 'react-intl';
import es from './es';
import pt from './pt';

const messages = { es, pt };

export const registerMessages = (namespace, newMessages) => {
Object.keys(newMessages).forEach((lang) => {
Object.keys(newMessages[lang]).forEach((key) => {
Object.assign(messages[lang], {
[`${namespace}/${key}`]: newMessages[lang][key],
});
});
});
return {
FormattedMessage: (props) => {
return <FormattedMessage {...props} />
},
};
};

const LangContext = createContext();

export const useLang = () => useContext(LangContext);

export const IntlProvider = ({ lang, children }) => {
useEffect(() => {
const htmlNode = document.querySelector('html');
htmlNode.lang = lang;
}, [lang]);

return (
<BaseIntlProvider locale={lang} messages={messages[lang]} key={lang}>
<LangContext.Provider value={{ lang }}>
{children}
</LangContext.Provider>
</BaseIntlProvider>
);
};
9 changes: 0 additions & 9 deletions src/intl/messages.js

This file was deleted.

24 changes: 8 additions & 16 deletions src/intl/pt/index.js → src/intl/pt.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const pt = {
submit: 'Enviar',
reset: 'Resetar',

'projects.js.intro': `
'projects.web-dev.intro': `
<p>
Nossa proposta de aprendizagem se baseia em
<strong>aprender fazendo</strong>. O foco central de nosso currículo
Expand All @@ -28,7 +28,7 @@ const pt = {
</p>
`,

'projects.js.level.0': `
'projects.web-dev.level.0': `
<p>
Os projetos deste nível se caracterizam por ser <strong>apps vanilla,
ainda sem backend, sem persistência e sem autenticação</strong>.
Expand All @@ -45,7 +45,7 @@ const pt = {
</p>
`,

'projects.js.level.1': `
'projects.web-dev.level.1': `
<p>
Os projetos deste nível continuam sendo <strong>apps de uma só tela ou
página, vanilla, ainda sem backend, nem persistência, nem
Expand All @@ -63,7 +63,7 @@ const pt = {
</p>
`,

'projects.js.level.2': `
'projects.web-dev.level.2': `
<p>
Os projetos deste nível continuam sendo <strong>apps de uma só tela ou
página, vanilla, ainda sem backend, nem persistência, nem
Expand All @@ -80,7 +80,7 @@ const pt = {
</p>
`,

'projects.js.level.3': `
'projects.web-dev.level.3': `
<p>
Neste <em>nível</em> finalmente passamos para <strong>aplicações
com múltiplas telas, ainda em vanilla</strong>. Também é incluso
Expand All @@ -100,7 +100,7 @@ const pt = {
</p>
`,

'projects.js.level.4': `
'projects.web-dev.level.4': `
<p>
Este <em>nível</em> é muito mais amplo. Aqui encontramos projetos de
frontend usando <strong>frameworks como React, Angular ou Vue</strong>,
Expand All @@ -116,7 +116,7 @@ const pt = {
</p>
`,

'projects.js.level.5': `
'projects.web-dev.level.5': `
<p>
A medida que avançamos de nível, a variedade de opções vai ampliando.
Neste nível teremos projetos variados que abrangem temas tanto de
Expand All @@ -137,7 +137,7 @@ const pt = {
</p>
`,

'projects.js.level.6': `
'projects.web-dev.level.6': `
<p>
Como último nível, temos un único projeto chamado
<em>Job Application</em>. Este projeto está focado na preparação para
Expand Down Expand Up @@ -215,14 +215,6 @@ const pt = {

'gym': 'Exercícios',

// 'exercise.problem': 'Declaração',
// 'exercise.code': 'Código',
'exercise.runTests': 'Executar testes',
// 'exercise.reset': 'Reiniciar',

'exercise-test-results.failures': '{failures} dos {tests} testes falharam',
'exercise-test-results.passes': '{passes} testes passaram ;-)',

'quiz-results': 'Respostas corretas: {success}/{total}',
};

Expand Down

0 comments on commit e5ba2f0

Please sign in to comment.