Skip to content

Commit

Permalink
feat(localazy): add localazy and de + es translations (#198)
Browse files Browse the repository at this point in the history
  • Loading branch information
rahulkeerthi authored Jan 10, 2024
1 parent 8b9c360 commit 2efa2fc
Show file tree
Hide file tree
Showing 13 changed files with 644 additions and 330 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,5 @@ yalc.lock
.idea

# alternate file
.projections.json
.projections.json
localazy.json
55 changes: 4 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,7 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
# Hosted Pages

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.

[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.

The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.

## Creating a New Release - Deployment Instructions
Follow these steps to create a new release and deploy it to the appropriate environment:

### Step 1: Create a New Release Tag
1. Go to [the release page](https://github.com/awell-health/hosted-pages/releases).
2. Create a new release tag for your project. This tag will serve as the starting point for the deployment process.
### Step 2: Trigger Staging Release
3. After creating the release tag, the staging release will automatically be triggered.
4. To monitor the progress, check the deployment pipeline in [the actions page](https://github.com/awell-health/hosted-pages/actions).
### Step 3: Deploy to Sandbox
5. To deploy the release to the sandbox environment, access [Sandbox deployment](https://github.com/awell-health/hosted-pages/actions/workflows/sandbox-deployment.yml) in actions.
6. Select 'Run Workflow' from the options available.
7. Set the branch to `staging` if it's a regular release or `main` if it's a hotfix release.
### Step 4: Deploy to Production
8. To deploy the release to the production environment, access [Production deployment](https://github.com/awell-health/hosted-pages/actions/workflows/production-deployment.yml) in actions.
9. Select 'Run Workflow' from the options available.
10. Set the branch to `staging` for a regular release or `main` for a hotfix release.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
This repository contains the source code for [Awell](https://www.awell.health)'s Hosted Pages application. You can learn more about Hosted Pages [in our Developer Hub](https://developers.awellhealth.com/awell-orchestration/docs/activities/awell-hosted-pages/what-are-awell-hosted-pages).

## Translations

Hosted Pages supports multiple languages. You can find the translations in the `public/locales` directory. If you would like to add a new language, please submit a pull request. Reach out to [email protected] if you have any questions or would like access to our Localazy project to administer translations in any language(s).
2 changes: 1 addition & 1 deletion next-i18next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module.exports = {
i18n: {
// These are all the locales you want to support in
// your application
locales: ['en', 'fr', 'nl', 'et', 'ro', 'ru'],
locales: ['en', 'fr', 'nl', 'et', 'ro', 'ru', 'de', 'es'],
// When localeDetection is set to false Next.js will no longer automatically
// redirect based on the user's preferred locale and will only provide locale
// information detected from either the locale based domain or locale path as described above.
Expand Down
11 changes: 7 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,22 @@
"version": "0.0.80",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"codegen": "graphql-codegen --config codegen.yml",
"dev": "next dev",
"i18n:up": "localazy upload",
"i18n:down": "localazy download",
"lint": "next lint",
"prepare": "husky install",
"pre-commit": "yarn tsc --noEmit && next lint",
"codegen": "graphql-codegen --config codegen.yml",
"prepare": "husky install",
"start": "next start",
"test": "vitest"
},
"dependencies": {
"@apollo/client": "^3.8.6",
"@awell-health/ui-library": "0.1.38",
"@formsort/react-embed": "^3.1.1",
"@localazy/cli": "^1.7.5",
"@sentry/nextjs": "^7.59.3",
"date-fns": "^2.29.3",
"graphql": "^16.8.1",
Expand Down
109 changes: 109 additions & 0 deletions public/locales/de/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{
"activities": {
"activity_not_supported": "Der Aktivitätstyp wird nicht unterstützt.",
"checklist": {
"cta_submit": "Absenden",
"loading": "Checkliste wird geladen...",
"loading_error": "Beim Laden der Checkliste ist etwas schief gelaufen.",
"saving_error": "Die Einreichung der Checkliste ist fehlgeschlagen."
},
"cloudinary": {
"cta_upload_files": "Dateien hochladen",
"file_attachment": "Datei anzeigen",
"file_count_one": "Sie haben 1 Datei hochgeladen.",
"file_count_other": "Sie haben {{count}} Dateien hochgeladen.",
"file_count_zero": "Sie haben noch keine Dateien hochgeladen.",
"link_attachment": "Link öffnen",
"no_files": "Sie haben noch keine Dateien hochgeladen.",
"single_file_upload_action": {
"cta_upload_file": "Datei hochladen",
"file_uploaded": "Sie haben erfolgreich eine Datei hochgeladen.",
"no_file_uploaded": "Sie haben noch keine Datei hochgeladen.",
"subject_single_file_upload": "Datei hochladen"
},
"subject": "Dateien hochladen",
"video_attachment": "Video öffnen"
},
"cta_done": "Fertig",
"docu_sign": {
"cta_sign_document": "Dokument signieren",
"expired_sign_document": "Der Link zum Signieren ist abgelaufen.",
"failed_sign_document": "Der Link zum Signieren ist fehlgeschlagen.",
"finished_sign_document": "Fast fertig…",
"loading_sign_document": "Dokument wird geladen..."
},
"form": {
"cta_start_form": "Formular starten",
"cta_submit": "Absenden",
"form_has_errors": "Bitte korrigieren Sie die Fehler im Formular vor dem Absenden",
"invalid_phone_number": "Telefonnummer ist ungültig",
"loading": "Formular wird geladen...",
"loading_error": "Beim Laden des Formulars ist etwas schief gelaufen.",
"next_question_label": "Weiter",
"previous_question_label": "Vorheriger",
"question_required_error": "Diese Frage ist erforderlich.",
"questions": {
"select": {
"no_options": "Keine Optionen gefunden",
"search_placeholder": "Suche nach einer Option",
"type_to_search": "Beginnen Sie mit der Eingabe zur Suche"
},
"slider": {
"tooltip_guide": "Berühren Sie, um Ihre Antwort anzuzeigen"
},
"yes_no": {
"no_answer": "Nein",
"yes_answer": "Ja"
}
},
"saving_error": "Das Absenden des Formulars ist fehlgeschlagen.",
"slider_not_touched_error": "Bitte bewegen Sie den Schieberegler, um Ihre Antwort anzuzeigen."
},
"loading": "Aktivität wird geladen...",
"loading_error": "Beim Laden Ihrer Aktivitäten ist etwas schief gelaufen.",
"message": {
"cta_mark_as_read": "Fertig",
"download_file_attachment": "Herunterladen",
"loading": "Nachricht laden...",
"loading_error": "Beim Laden der Nachricht ist ein Fehler aufgetreten.",
"open_link_attachment": "Link öffnen",
"open_video_attachment": "Video öffnen",
"toast_mark_as_read_error": "Fehler beim Markieren der Nachricht als gelesen."
},
"waiting_for_new_activities": "Ich warte auf neue Aktivitäten.",
"waiting_unexpected": "Das Warten dauert länger als erwartet. Bitte warte..."
},
"errors": {
"app_error": "Hoppla... Etwas ist schief gelaufen. Bitte versuche es erneut."
},
"link_page": {
"loading": "Warte, wir beginnen deine Sitzung.",
"loading_error": "Ups, wir konnten keine Sitzung für dich starten.",
"try_again": "Erneut versuchen"
},
"preview": {
"cta": "Probiere es aus"
},
"seo": {
"description": "Erledigen Sie alle Aktivitäten in Ihrem Pflegeablauf mit von Awell gehosteten Seiten.",
"loading_title": "Wird geladen…",
"title": "Awell Aktivitäten"
},
"session": {
"all_activities_completed": "Sie haben alle Ihre Aktivitäten abgeschlossen. Sie können diese Seite jetzt schließen.",
"authentication_loading": "Authentifizierung, bitte warten.",
"close_modal": {
"cancel_button_label": "Nein, weiter",
"confirm_button_label": "Ja, Sitzung stornieren",
"description": "Es gibt noch einige Aktivitäten, die Sie abschließen müssen. Wenn Sie Ihre Sitzung stornieren, verlieren Sie möglicherweise Daten, die Sie noch nicht übermittelt haben.",
"title": "Bist du sicher, dass du deine Sitzung stornieren möchtest?"
},
"invalid_url": "Ungültige URL: Die URL muss den Parameter `sessionID` enthalten.",
"loading": "Sitzung wird geladen...",
"loading_error": "Beim Laden Ihrer Sitzung ist ein Fehler aufgetreten.",
"redirecting_to_next_page": "Ich werde dich gleich umleiten...",
"session_canceled": "Ihre Sitzung wurde abgesagt.",
"session_expired": "Ihre Sitzung ist nach 1 Stunde Inaktivität abgelaufen.",
"try_again": "Erneut versuchen"
}
}
3 changes: 2 additions & 1 deletion public/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
},
"select": {
"search_placeholder": "Search for an option",
"no_options": "No options found"
"no_options": "No options found",
"type_to_search": "Start typing to search"
},
"slider": {
"tooltip_guide": "Touch to indicate your answer"
Expand Down
109 changes: 109 additions & 0 deletions public/locales/es/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{
"activities": {
"activity_not_supported": "No se admite el tipo de actividad.",
"checklist": {
"cta_submit": "Enviar",
"loading": "Cargando lista de verificación...",
"loading_error": "Se ha producido un error al cargar la lista de verificación.",
"saving_error": "No se pudo enviar la lista de verificación."
},
"cloudinary": {
"cta_upload_files": "Subir archivos",
"file_attachment": "Ver archivo",
"file_count_one": "Has subido 1 archivo.",
"file_count_other": "Has subido {{count}} archivos.",
"file_count_zero": "Aún no has subido ningún archivo.",
"link_attachment": "Abrir enlace",
"no_files": "Aún no has subido ningún archivo.",
"single_file_upload_action": {
"cta_upload_file": "Cargar archivo",
"file_uploaded": "Has subido un archivo correctamente.",
"no_file_uploaded": "Aún no has subido ningún archivo.",
"subject_single_file_upload": "Cargar archivo"
},
"subject": "Subir archivos",
"video_attachment": "Abrir vídeo"
},
"cta_done": "Listo",
"docu_sign": {
"cta_sign_document": "Firmar documento",
"expired_sign_document": "El enlace de firma ha caducado.",
"failed_sign_document": "No se pudo firmar el enlace.",
"finished_sign_document": "A punto de completar…",
"loading_sign_document": "Cargando documento..."
},
"form": {
"cta_start_form": "Formulario de inicio",
"cta_submit": "Enviar",
"form_has_errors": "Corrija los errores del formulario antes de enviarlo",
"invalid_phone_number": "El número de teléfono no es válido.",
"loading": "Cargando Formulario",
"loading_error": "Se ha producido un error al cargar el formulario.",
"next_question_label": "Siguiente",
"previous_question_label": "Anterior",
"question_required_error": "Esta pregunta es obligatoria.",
"questions": {
"select": {
"no_options": "No se encontraron opciones",
"search_placeholder": "Busca una opción",
"type_to_search": "Empezar a escribir para buscar"
},
"slider": {
"tooltip_guide": "Toca para indicar tu respuesta"
},
"yes_no": {
"no_answer": "No",
"yes_answer": ""
}
},
"saving_error": "No se pudo enviar el formulario.",
"slider_not_touched_error": "Mueva el control deslizante para indicar su respuesta."
},
"loading": "Cargando actividad...",
"loading_error": "Se ha producido un error al cargar tus actividades.",
"message": {
"cta_mark_as_read": "Listo",
"download_file_attachment": "Descargar",
"loading": "Cargando mensaje...",
"loading_error": "Se ha producido un error al cargar el mensaje.",
"open_link_attachment": "Abrir enlace",
"open_video_attachment": "Abrir vídeo",
"toast_mark_as_read_error": "Error al marcar el mensaje como leído."
},
"waiting_for_new_activities": "Esperando nuevas actividades.",
"waiting_unexpected": "La espera está tardando más de lo esperado. Espere, por favor..."
},
"errors": {
"app_error": "¡Uy! Algo salió mal. Vuelve a intentarlo."
},
"link_page": {
"loading": "Espera, estamos empezando tu sesión.",
"loading_error": "Vaya, no hemos podido iniciar una sesión por ti.",
"try_again": "Intentar de nuevo"
},
"preview": {
"cta": "Pruébalo"
},
"seo": {
"description": "Complete las actividades de su flujo de atención con las páginas alojadas en Awell.",
"loading_title": "Cargando…",
"title": "Actividades de Awell"
},
"session": {
"all_activities_completed": "Has completado todas tus actividades. Puede cerrar esta página ahora.",
"authentication_loading": "Autenticando, espere.",
"close_modal": {
"cancel_button_label": "No, continúa",
"confirm_button_label": "Sí, cancela sesión",
"description": "Aún quedan algunas actividades por completar. Si cancelas la sesión, es posible que pierdas los datos que aún no has enviado.",
"title": "¿Está seguro de que desea cancelar la sesión?"
},
"invalid_url": "URL no válida: la URL debe contener el parámetro `SessionId`.",
"loading": "Cargando sesión...",
"loading_error": "Se ha producido un error al cargar la sesión.",
"redirecting_to_next_page": "Te redirigiré en un momento...",
"session_canceled": "Se ha cancelado tu sesión.",
"session_expired": "Su sesión ha caducado tras 1 hora de inactividad.",
"try_again": "Intentar de nuevo"
}
}
Loading

0 comments on commit 2efa2fc

Please sign in to comment.