diff --git a/README.md b/README.md index 38e0f10320..78edcb5968 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,12 @@ Contributions are always welcome. Before contributing please read our [contribut 1. Fork this repository to your own GitHub account and then clone it to your local device 2. Navigate to the cloned folder: `cd hospitalrun-frontend` -3. Install the dependencies: `yarn` -4. Run `yarn run start` to build and watch for code changes +3. Install the dependencies: `npm install` +4. Run `npm run start` to build and watch for code changes + +## Translation + +Use the stadards in [this readme](https://github.com/HospitalRun/hospitalrun-frontend/tree/master/src/locales/README.md). ## Online one-click setup for contributing @@ -77,13 +81,13 @@ To fix this issue, add `SKIP_PREFLIGHT_CHECK=true` to the `.env` file. ## Running Tests and Linter -`yarn test:ci` will run the entire test suite +`npm run test:ci` will run the entire test suite -`yarn test` will run the test suite in watch mode +`npm run test` will run the test suite in watch mode -`yarn lint` will run the linter +`npm run lint` will run the linter -`yarn lint:fix` will run the linter and fix fixable errors +`npm run lint:fix` will run the linter and fix fixable errors ## Useful Developer Tools @@ -98,7 +102,7 @@ In order to optimize the workflow and to prevent multiple contributors working o ## How to commit -This repo uses Conventional Commits. Commitizen is mandatory for making proper commits. Once you have staged your changes, can run `npm run commit` or `yarn commit` from the root directory in order to commit following our standards. +This repo uses Conventional Commits. Commitizen is mandatory for making proper commits. Once you have staged your changes, can run `npm run commit` from the root directory in order to commit following our standards.
diff --git a/src/i18n.ts b/src/i18n.ts index 553e72ef48..430d64046b 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -7,12 +7,12 @@ import translationDE from './locales/de/translations' import translationEnUs from './locales/enUs/translations' import translationES from './locales/es/translations' import translationFR from './locales/fr/translations' -import translationIN from './locales/in/translations' +import translationID from './locales/id/translations' import translationIT from './locales/it/translations' import translationJA from './locales/ja/translations' import translationPtBR from './locales/ptBr/translations' import translationRU from './locales/ru/translations' -import translationZR from './locales/zr/translations' +import translationZhCN from './locales/zhCN/translations' const resources: { [language: string]: any } = { it: { @@ -39,15 +39,15 @@ const resources: { [language: string]: any } = { name: 'French', translation: translationFR, }, - in: { + id: { name: 'Indonesian', - translation: translationIN, + translation: translationID, }, ja: { name: 'Japanese', translation: translationJA, }, - pt: { + ptBR: { name: 'Portuguese', translation: translationPtBR, }, @@ -55,9 +55,9 @@ const resources: { [language: string]: any } = { name: 'Russian', translation: translationRU, }, - zr: { + zhCN: { name: 'Chinese', - translation: translationZR, + translation: translationZhCN, }, } diff --git a/src/locales/README.md b/src/locales/README.md new file mode 100644 index 0000000000..6bf701158a --- /dev/null +++ b/src/locales/README.md @@ -0,0 +1,31 @@ +# Codes to use to identify languages + +The [IETF language tags](http://en.wikipedia.org/wiki/IETF_language_tag) are made up of [ISO 639](http://en.wikipedia.org/wiki/ISO_639) standards for representing language names and [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) standards for representing country codes. A sample list: + +| English name for language | Tag | +| :------------------------ | :---- | +| English | en | +| English (United States) | en-US | +| English (Great Britain) | en-GB | +| French | fr | +| German | de | +| Polish | pl | +| Dutch | nl | +| Finnish | fi | +| Swedish | sv | +| Italian | it | +| Spanish (Spain) | es | +| Portuguese (Portugal) | pt | +| Russian | ru | +| Portuguese (Brazil) | pt-BR | +| Spanish (Mexico) | es-MX | +| Chinese (PRC) | zh-CN | +| Chinese (Taiwan) | zh-TW | +| Japanese | ja | +| Korean | ko | + +Use these two reference lists to create new languages. + +[ISO 639-1](https://datahub.io/core/language-codes/r/0.html) + +[IETF Language Types](https://datahub.io/core/language-codes/r/3.html) diff --git a/src/locales/de/translations/actions/index.ts b/src/locales/de/translations/actions/index.ts index 36da829341..04bdf25794 100644 --- a/src/locales/de/translations/actions/index.ts +++ b/src/locales/de/translations/actions/index.ts @@ -1,9 +1,15 @@ export default { actions: { + label: 'Aktionen', edit: 'Bearbeiten', - save: 'speichern', + save: 'Speichern', + update: 'Aktualisieren', + complete: 'Komplett', + delete: 'Löschen', cancel: 'Stornieren', new: 'Neu', list: 'Liste', + search: 'Suche', + confirmDelete: 'Bestätigung der Löschung', }, } diff --git a/src/locales/de/translations/dashboard/index.ts b/src/locales/de/translations/dashboard/index.ts index 984588ceb3..feaad5f3ee 100644 --- a/src/locales/de/translations/dashboard/index.ts +++ b/src/locales/de/translations/dashboard/index.ts @@ -1,5 +1,5 @@ export default { dashboard: { - label: 'Instrumententafel', + label: 'Dashboard', }, } diff --git a/src/locales/de/translations/incidents/index.ts b/src/locales/de/translations/incidents/index.ts new file mode 100644 index 0000000000..c4312bf4ec --- /dev/null +++ b/src/locales/de/translations/incidents/index.ts @@ -0,0 +1,35 @@ +export default { + incidents: { + filterTitle: 'Nach Status filtern', + label: 'Vorfälle', + actions: { + report: 'Bericht', + }, + status: { + reported: 'gemeldet', + all: 'alle', + }, + reports: { + label: 'Gemeldete Vorfälle', + new: 'Vorfall melden', + view: 'Vorfall ansehen', + dateOfIncident: 'Datum des Vorfalles', + department: 'Abteilung', + category: 'Kategorie', + categoryItem: 'Kategorie Artikel', + description: 'Beschreibung des Vorfalles', + code: 'Code', + reportedBy: 'Gemeldet von', + reportedOn: 'Gemeldet am', + status: 'Status', + error: { + dateRequired: 'Datum is erforderlich.', + dateMustBeInThePast: 'Datum muss in der vergangenheit sein.', + departmentRequired: 'Abteilung ist erforderlich.', + categoryRequired: 'Kategorie ist erforderlich', + categoryItemRequired: 'Kategorie Artikel ist erforderlich', + descriptionRequired: 'Beschreibung ist erforderlich', + }, + }, + }, +} diff --git a/src/locales/de/translations/index.ts b/src/locales/de/translations/index.ts index 62cbb42d7b..425c94d1a3 100644 --- a/src/locales/de/translations/index.ts +++ b/src/locales/de/translations/index.ts @@ -1,8 +1,13 @@ import actions from './actions' import dashboard from './dashboard' +import incidents from './incidents' +import labs from './labs' import patient from './patient' import patients from './patients' +import scheduling from './scheduling' import settings from './settings' +import sex from './sex' +import states from './states' export default { ...actions, @@ -10,4 +15,9 @@ export default { ...patient, ...patients, ...settings, + ...scheduling, + ...states, + ...sex, + ...labs, + ...incidents, } diff --git a/src/locales/de/translations/labs/index.ts b/src/locales/de/translations/labs/index.ts index 6bdaf43580..2e8dc7c45c 100644 --- a/src/locales/de/translations/labs/index.ts +++ b/src/locales/de/translations/labs/index.ts @@ -1,7 +1,40 @@ export default { labs: { + label: 'Labor', + filterTitle: 'Nach Status filtern', + search: 'Laborsuche', + status: { + requested: 'Angefordert', + completed: 'Abgeschlossen', + canceled: 'Abgebrochen', + }, + filter: { + all: 'Alle Status', + }, + requests: { + label: 'Laboranfragen', + new: 'Neue Laboranfrage', + view: 'Labor anzeigen', + cancel: 'Labor stornieren', + complete: 'Labor erledigt', + error: { + unableToRequest: 'Unable to create new lab request.', + unableToComplete: 'Unable to complete lab request.', + typeRequired: 'Type is required.', + resultRequiredToComplete: 'Result is required to complete.', + }, + }, lab: { code: 'Laborcode', + status: 'Status', + for: 'Für', + type: 'Typ', + result: 'Resultat', + notes: 'Notizen', + requestedOn: 'Angefordert am', + completedOn: 'Erledigt am', + canceledOn: 'Storniert am', + patient: 'Patient', }, }, } diff --git a/src/locales/de/translations/patient/index.ts b/src/locales/de/translations/patient/index.ts index d1b1df3786..dfae4b8baf 100644 --- a/src/locales/de/translations/patient/index.ts +++ b/src/locales/de/translations/patient/index.ts @@ -1,6 +1,113 @@ export default { patient: { + code: 'Patient Code', firstName: 'Vorname', lastName: 'Nachname', + suffix: 'Suffix', + prefix: 'Präfix', + givenName: 'Rufname', + familyName: 'Familienname', + dateOfBirth: 'Geburtsdatum', + approximateDateOfBirth: 'Ungefähres Geburtsdatum', + age: 'Alter', + approximateAge: 'Ungefähres Alter', + placeOfBirth: 'Geburtsort', + sex: 'Geschlecht', + phoneNumber: 'Telefonnummer', + email: 'E-mail', + address: 'Addresse', + occupation: 'Beruf', + type: 'Patiententyp', + preferredLanguage: 'Bevorzugte Sprache', + basicInformation: 'Grundinformation', + generalInformation: 'Allgemeine Information', + contactInformation: 'Kontakt Information', + unknownDateOfBirth: 'Unbekannt', + relatedPerson: 'Verwandte Person', + relatedPersons: { + error: { + unableToAddRelatedPerson: 'Neue verwandte Person kann nicht hinzugefügt werden.', + relatedPersonRequired: 'Verwandte Person ist erforderlich.', + relationshipTypeRequired: 'Beziehungstyp ist erforderlich.', + }, + label: 'Verwandte Personen', + new: 'Neue Verwandte Person', + add: 'Verwandte Person hinzufügen', + relationshipType: 'Beziehungstyp', + warning: { + noRelatedPersons: 'Keine verwandten Personen', + }, + addRelatedPersonAbove: 'Fügen Sie über den Button oben eine verwandte Person hinzu.', + }, + appointments: { + new: 'Termin hinzufügen', + }, + allergies: { + label: 'Allergien', + allergyName: 'Name der Allergie', + new: 'Allergie hinzufügen', + error: { + nameRequired: 'Name ist erforderlich.', + unableToAdd: 'Allergie konnte nicht hinzugefügt werden.', + }, + warning: { + noAllergies: 'Keine Allergien', + }, + addAllergyAbove: 'Fügen Sie über den Button oben eine Allergie hinzu.', + successfullyAdded: 'Erfolgreich eine neue Allergie hinzugefügt!', + }, + diagnoses: { + label: 'Diagnosen', + new: 'Diagnose hinzufügen', + diagnosisName: 'Name der Diagnose', + diagnosisDate: 'Diagnosedatum', + warning: { + noDiagnoses: 'Keine Diagnosen', + }, + error: { + nameRequired: 'Name der Diagnose ist erforderlich.', + dateRequired: 'Diagnosedatum ist erforderlich.', + unableToAdd: 'Diagnose konnte nicht hinzugefügt werden.', + }, + addDiagnosisAbove: 'Fügen Sie über den Button oben eine Diagnose hinzu.', + successfullyAdded: 'Erfolgreich eine neue Diagnose hinzugefügt!', + }, + note: 'Notizen', + notes: { + label: 'Notizen', + new: 'Neue Notiz hinzufügen', + warning: { + noNotes: 'Keine Notizen', + }, + error: { + noteRequired: 'Notiz ist erforderlich.', + unableToAdd: 'Unable to add new note.', + }, + addNoteAbove: 'Fügen Sie über den Button oben eine Notiz hinzu.', + }, + labs: { + label: 'Labore', + new: 'Neues Labor hinzufügen', + warning: { + noLabs: 'Keine Labore', + }, + noLabsMessage: 'Keine Laboranfragen für diese Person.', + }, + types: { + charity: 'Charity', + private: 'Privat', + }, + errors: { + createPatientError: 'Neuer Patient konnte nicht erstellt werden.', + updatePatientError: 'Patient konnte nicht aktualisiert werden.', + patientGivenNameFeedback: 'Rufname ist erforderlich.', + patientDateOfBirthFeedback: 'Das Geburtsdatum kann nicht in der Zukunft liegen', + patientNumInSuffixFeedback: 'Kann keine Zahlen enthalten.', + patientNumInPrefixFeedback: 'Kann keine Zahlen enthalten.', + patientNumInFamilyNameFeedback: 'Kann keine Zahlen enthalten.', + patientNumInPreferredLanguageFeedback: 'Kann keine Zahlen enthalten.', + invalidEmail: 'Muss eine gültige E-Mail sein.', + invalidPhoneNumber: 'Muss eine gültige Telefonnummer sein.', + }, }, } diff --git a/src/locales/de/translations/scheduling/index.ts b/src/locales/de/translations/scheduling/index.ts new file mode 100644 index 0000000000..2b17789c94 --- /dev/null +++ b/src/locales/de/translations/scheduling/index.ts @@ -0,0 +1,37 @@ +export default { + scheduling: { + label: 'Planung', + appointments: { + label: 'Termine', + new: 'Neuer Termin', + schedule: 'Terminplan', + editAppointment: 'Termin bearbeiten', + deleteAppointment: 'Termin löschen', + viewAppointment: 'Termin ansehen', + }, + appointment: { + startDate: 'Anfangsdatum', + endDate: 'Enddatum', + location: 'Standort', + type: 'Typ', + types: { + checkup: 'Untersuchung', + emergency: 'Notfall', + followUp: 'Nachverfolgen', + routine: 'Routine', + walkIn: 'Walk In', + }, + errors: { + createAppointmentError: 'Neuer Termin konnte nicht erstellt werden.', + updateAppointmentError: 'Termin konnte nicht aktualisiert werden.', + patientRequired: 'Patient ist erforderlich.', + startDateMustBeBeforeEndDate: 'Die Startzeit muss vor der Endzeit liegen.', + }, + reason: 'Grund', + patient: 'Patient', + deleteConfirmationMessage: 'Sind Sie sicher, dass Sie diesen Termin löschen möchten?', + successfullyCreated: 'Termin erfolgreich erstellt.', + successfullyDeleted: 'Termin erfolgreich gelöscht.', + }, + }, +} diff --git a/src/locales/de/translations/sex/index.ts b/src/locales/de/translations/sex/index.ts new file mode 100644 index 0000000000..b4cfdbbea2 --- /dev/null +++ b/src/locales/de/translations/sex/index.ts @@ -0,0 +1,8 @@ +export default { + sex: { + male: 'Männlich', + female: 'Weiblich', + other: 'Andere', + unknown: 'Unbekannt', + }, +} diff --git a/src/locales/de/translations/states/index.ts b/src/locales/de/translations/states/index.ts new file mode 100644 index 0000000000..8446a94071 --- /dev/null +++ b/src/locales/de/translations/states/index.ts @@ -0,0 +1,6 @@ +export default { + states: { + success: 'Erfolg!', + error: 'Fehler!', + }, +} diff --git a/src/locales/in/translations/actions/index.ts b/src/locales/id/translations/actions/index.ts similarity index 100% rename from src/locales/in/translations/actions/index.ts rename to src/locales/id/translations/actions/index.ts diff --git a/src/locales/in/translations/dashboard/index.ts b/src/locales/id/translations/dashboard/index.ts similarity index 100% rename from src/locales/in/translations/dashboard/index.ts rename to src/locales/id/translations/dashboard/index.ts diff --git a/src/locales/in/translations/index.ts b/src/locales/id/translations/index.ts similarity index 100% rename from src/locales/in/translations/index.ts rename to src/locales/id/translations/index.ts diff --git a/src/locales/in/translations/labs/index.ts b/src/locales/id/translations/labs/index.ts similarity index 100% rename from src/locales/in/translations/labs/index.ts rename to src/locales/id/translations/labs/index.ts diff --git a/src/locales/in/translations/patient/index.ts b/src/locales/id/translations/patient/index.ts similarity index 100% rename from src/locales/in/translations/patient/index.ts rename to src/locales/id/translations/patient/index.ts diff --git a/src/locales/in/translations/patients/index.ts b/src/locales/id/translations/patients/index.ts similarity index 100% rename from src/locales/in/translations/patients/index.ts rename to src/locales/id/translations/patients/index.ts diff --git a/src/locales/in/translations/settings/index.ts b/src/locales/id/translations/settings/index.ts similarity index 100% rename from src/locales/in/translations/settings/index.ts rename to src/locales/id/translations/settings/index.ts diff --git a/src/locales/zr/translations/actions/index.ts b/src/locales/zhCN/translations/actions/index.ts similarity index 100% rename from src/locales/zr/translations/actions/index.ts rename to src/locales/zhCN/translations/actions/index.ts diff --git a/src/locales/zr/translations/dashboard/index.ts b/src/locales/zhCN/translations/dashboard/index.ts similarity index 100% rename from src/locales/zr/translations/dashboard/index.ts rename to src/locales/zhCN/translations/dashboard/index.ts diff --git a/src/locales/zr/translations/index.ts b/src/locales/zhCN/translations/index.ts similarity index 100% rename from src/locales/zr/translations/index.ts rename to src/locales/zhCN/translations/index.ts diff --git a/src/locales/zr/translations/labs/index.ts b/src/locales/zhCN/translations/labs/index.ts similarity index 100% rename from src/locales/zr/translations/labs/index.ts rename to src/locales/zhCN/translations/labs/index.ts diff --git a/src/locales/zr/translations/patient/index.ts b/src/locales/zhCN/translations/patient/index.ts similarity index 100% rename from src/locales/zr/translations/patient/index.ts rename to src/locales/zhCN/translations/patient/index.ts diff --git a/src/locales/zr/translations/patients/index.ts b/src/locales/zhCN/translations/patients/index.ts similarity index 86% rename from src/locales/zr/translations/patients/index.ts rename to src/locales/zhCN/translations/patients/index.ts index 3f1a814277..701850936e 100644 --- a/src/locales/zr/translations/patients/index.ts +++ b/src/locales/zhCN/translations/patients/index.ts @@ -1,6 +1,6 @@ export default { patients: { - label: '耐心', + label: '标签', viewPatients: '查看患者', viewPatient: '查看患者', newPatient: '新病人', diff --git a/src/locales/zr/translations/settings/index.ts b/src/locales/zhCN/translations/settings/index.ts similarity index 100% rename from src/locales/zr/translations/settings/index.ts rename to src/locales/zhCN/translations/settings/index.ts