Skip to content

Commit

Permalink
Merge pull request #141 from InseeFr/i18n/extra-language
Browse files Browse the repository at this point in the history
I18n/extra language
  • Loading branch information
ddecrulle committed May 12, 2024
2 parents 54119bf + c1e701e commit 6d70f54
Show file tree
Hide file tree
Showing 31 changed files with 852 additions and 357 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pearl",
"version": "2.0.8",
"version": "2.1.0",
"private": true,
"dependencies": {
"@emotion/react": "^11.11.1",
Expand Down
46 changes: 29 additions & 17 deletions src/i18n/addressMessage.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
const addressMessage = {
addressDeliveryPoint: { fr: 'Point de remise', en: 'Delivery point' },
addressAdditionalAddress: { fr: `Complément d'adresse`, en: 'Additional address' },
addressNumber: { fr: 'Numéro de voie', en: 'Street number' },
addressStreetType: { fr: 'Type de voie', en: 'Street type' },
addressStreetName: { fr: 'Numéro et libellé de voie', en: 'Street number and name' },
addressPostcode: { fr: 'Code postal', en: 'Postal code' },
addressCity: { fr: 'Commune', en: 'City' },
addressName: { fr: 'Nom', en: 'Name' },
addressFullAddress: { fr: 'Adresse', en: 'Address' },
addressCountry: { fr: 'Pays', en: 'Country' },
addressLocality: { fr: 'Lieu-dit', en: 'Locality' },
addressBuilding: { fr: 'Bâtiment', en: 'Building' },
addressFloor: { fr: 'Etage', en: 'Floor' },
addressDoor: { fr: 'Porte', en: 'Door' },
addressStaircase: { fr: 'Escalier', en: 'Staircase' },
addressElevator: { fr: 'Ascenseur', en: 'Elevator' },
addressCityPriorityDistrict: { fr: 'QPV', en: 'City Priority District' },
addressDeliveryPoint: { fr: 'Point de remise', en: 'Delivery point', sq: 'Pika e dorëzimit' },
addressAdditionalAddress: {
fr: `Complément d'adresse`,
en: 'Additional address',
sq: 'Adresë shtesë',
},
addressNumber: { fr: 'Numéro de voie', en: 'Street number', sq: 'Numri i rrugës' },
addressStreetType: { fr: 'Type de voie', en: 'Street type', sq: 'Lloji i rrugës' },
addressStreetName: {
fr: 'Numéro et libellé de voie',
en: 'Street number and name',
sq: 'Numri dhe emri i rrugës',
},
addressPostcode: { fr: 'Code postal', en: 'Postal code', sq: 'Kodi postar' },
addressCity: { fr: 'Commune', en: 'City', sq: 'Qyteti' },
addressName: { fr: 'Nom', en: 'Name', sq: 'Emri' },
addressFullAddress: { fr: 'Adresse', en: 'Address', sq: 'Adresa' },
addressCountry: { fr: 'Pays', en: 'Country', sq: 'Shteti' },
addressLocality: { fr: 'Lieu-dit', en: 'Locality', sq: 'Lokaliteti' },
addressBuilding: { fr: 'Bâtiment', en: 'Building', sq: 'Ndërtesa' },
addressFloor: { fr: 'Etage', en: 'Floor', sq: 'Kati' },
addressDoor: { fr: 'Porte', en: 'Door', sq: 'Dera' },
addressStaircase: { fr: 'Escalier', en: 'Staircase', sq: 'Shkallët' },
addressElevator: { fr: 'Ascenseur', en: 'Elevator', sq: 'Ashensori' },
addressCityPriorityDistrict: {
fr: 'QPV',
en: 'City Priority District',
sq: 'Rajoni Prioritar i Qytetit',
},
};

export default addressMessage;
26 changes: 15 additions & 11 deletions src/i18n/build-dictionary.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,38 @@
import dictionary from './dictionary';
import { fr } from 'date-fns/locale';
// Importez le locale albanais si disponible
import { fr, sq } from 'date-fns/locale';
import setDefaultOptions from 'date-fns/setDefaultOptions';

/**
* Based on the locale passed as a paremeter, this function will return
* Based on the locale passed as a parameter, this function will return
* the corresponding dictionary.
*
* @param {string} lang the lang of the user
*/
export const createDictionary = lang => {
// Set date-fns lang
// Set date-fns lang for French and Albanian
if (lang === 'fr') {
setDefaultOptions({ locale: fr });
} else if (lang === 'sq') {
setDefaultOptions({ locale: sq }); // Supposant que `sq` est le locale pour l'albanais
}

return Object.keys(dictionary).reduce((_, k) => {
_[k] = dictionary[k][lang];
return _;
return Object.keys(dictionary).reduce((acc, key) => {
acc[key] = dictionary[key][lang];
return acc;
}, {});
};

/**
* This function will return only the lang part of a locale
* For example, with fr-FR, will return fr
* If the lang is not fr, will return en
* If the lang is not recognized, will return en
* Now also checks for Albanian (sq)
* @param {string} lang the lang of the user
*/
export const getLang = defaultLang =>
(defaultLang || navigator.language || navigator.browserLanguage).split('-')[0] === 'fr'
? 'fr'
: 'en';
export const getLang = defaultLang => {
const lang = (defaultLang || navigator.language || navigator.browserLanguage).split('-')[0];
return lang === 'fr' || lang === 'sq' ? lang : 'en';
};

export default createDictionary(getLang());
74 changes: 49 additions & 25 deletions src/i18n/buttonMessage.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,53 @@
const buttonMessage = {
questionnaireButton: { fr: 'Questionnaire', en: 'Survey' },
transmitButton: { fr: 'Transmettre', en: 'Send' },
cancelButton: { fr: 'Annuler', en: 'Cancel' },
saveButton: { fr: 'Enregistrer', en: 'Save' },
editButton: { fr: 'Modifier', en: 'Edit' },
validateButton: { fr: 'Valider', en: 'Validate' },
addPhoneNumberButton: { fr: 'Ajouter un numéro', en: 'Add a phone number' },
addContactAttemptButton: { fr: 'Ajouter un essai', en: 'Add a contact attempt' },
addContactOutcomeButton: { fr: 'Faire le bilan des contacts', en: 'Add contact outcome' },
editContactOutcomeButton: { fr: 'Modifier le bilan des contacts', en: 'Edit contact outcome' },
addButton: { fr: 'Ajouter', en: 'Add' },
synchronizeButton: { fr: 'Synchroniser', en: 'Synchronize' },
closeButton: { fr: 'Fermer', en: 'Close' },
updateNow: { fr: 'Mettre à jour maintenant', en: 'Update now' },
yesButton: { fr: 'Oui', en: 'Yes' },
noButton: { fr: 'Non', en: 'No' },
iUnderstand: { fr: `J'ai compris`, en: `I understand` },
deleteAll: { fr: 'Tout supprimer', en: 'Delete all' },
markAllAsRead: { fr: 'Tout marquer comme lu', en: 'Mark all as read' },
goBackToHome: { fr: "Retour à l'accueil", en: 'Go back home' },
yesDeleteAll: { fr: 'Oui, je supprime tout', en: 'Yes, I delete all' },
noImNotSure: { fr: 'Non, je ne suis pas sûr(e)', en: 'No, I am not sure' },
confirmButton: { fr: 'Confirmer', en: 'Confirm' },
previousButton: { fr: 'Précédent', en: 'Previous' },
sendButton: { fr: 'Envoyer', en: 'Send' },
questionnaireButton: { fr: 'Questionnaire', en: 'Survey', sq: 'Anketa' },
transmitButton: { fr: 'Transmettre', en: 'Send', sq: 'Dërgo' },
cancelButton: { fr: 'Annuler', en: 'Cancel', sq: 'Anulo' },
saveButton: { fr: 'Enregistrer', en: 'Save', sq: 'Ruaj' },
editButton: { fr: 'Modifier', en: 'Edit', sq: 'Ndrysho' },
validateButton: { fr: 'Valider', en: 'Validate', sq: 'Valido' },
addPhoneNumberButton: {
fr: 'Ajouter un numéro',
en: 'Add a phone number',
sq: 'Shto një numër telefoni',
},
addContactAttemptButton: {
fr: 'Ajouter un essai',
en: 'Add a contact attempt',
sq: 'Shto një përpjekje kontakti',
},
addContactOutcomeButton: {
fr: 'Faire le bilan des contacts',
en: 'Add contact outcome',
sq: 'Shto rezultatin e kontakteve',
},
editContactOutcomeButton: {
fr: 'Modifier le bilan des contacts',
en: 'Edit contact outcome',
sq: 'Ndrysho rezultatin e kontakteve',
},
addButton: { fr: 'Ajouter', en: 'Add', sq: 'Shto' },
synchronizeButton: { fr: 'Synchroniser', en: 'Synchronize', sq: 'Sinkronizo' },
closeButton: { fr: 'Fermer', en: 'Close', sq: 'Mbyll' },
updateNow: { fr: 'Mettre à jour maintenant', en: 'Update now', sq: 'Përditëso tani' },
yesButton: { fr: 'Oui', en: 'Yes', sq: 'Po' },
noButton: { fr: 'Non', en: 'No', sq: 'Jo' },
iUnderstand: { fr: `J'ai compris`, en: `I understand`, sq: `E kam kuptuar` },
deleteAll: { fr: 'Tout supprimer', en: 'Delete all', sq: 'Fshi të gjitha' },
markAllAsRead: {
fr: 'Tout marquer comme lu',
en: 'Mark all as read',
sq: 'Shëno të gjitha si të lexuara',
},
goBackToHome: { fr: "Retour à l'accueil", en: 'Go back home', sq: 'Kthehu në fillim' },
yesDeleteAll: { fr: 'Oui, je supprime tout', en: 'Yes, I delete all', sq: 'Po, fshi të gjitha' },
noImNotSure: {
fr: 'Non, je ne suis pas sûr(e)',
en: 'No, I am not sure',
sq: 'Jo, nuk jam i sigurt',
},
confirmButton: { fr: 'Confirmer', en: 'Confirm', sq: 'Konfirmo' },
previousButton: { fr: 'Précédent', en: 'Previous', sq: 'I mëparshëm' },
sendButton: { fr: 'Envoyer', en: 'Send', sq: 'Dërgo' },
};

export default buttonMessage;
46 changes: 31 additions & 15 deletions src/i18n/communicationMessage.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,65 @@ const communicationMessage = {
sendCommunication: {
fr: "Envoyer une communication à l'unité enquêtée",
en: 'Send a communication to the survey unit',
sq: 'Dërgo një komunikim te njësia e anketuar',
},
mediumMail: { fr: 'Courrier', en: 'Mail', sq: 'Posta' },
mediumEmail: { fr: 'Mail', en: 'E-mail', sq: 'E-mail' },
communicationNotification: { fr: 'Avis', en: 'Notice', sq: 'Njoftim' },
communicationReminder: { fr: 'Relance', en: 'Reminder', sq: 'Kujtesë' },
communicationMotiveRefusal: { fr: 'Refus', en: 'Refusal', sq: 'Refuzim' },
communicationMotiveUnreachable: {
fr: 'Impossible à joindre',
en: 'Unreachable',
sq: 'E paarritshme',
},
mediumMail: { fr: 'Courrier', en: 'Mail' },
mediumEmail: { fr: 'Mail', en: 'E-mail' },
communicationNotification: { fr: 'Avis', en: 'Notice' },
communicationReminder: { fr: 'Relance', en: 'Reminder' },
communicationMotiveRefusal: { fr: 'Refus', en: 'Refusal' },
communicationMotiveUnreachable: { fr: 'Impossible à joindre', en: 'Unreachable' },
selectCommunciationRequestMedium: {
fr: 'Préciser le moyen de contact',
en: 'Select contact medium',
sq: 'Zgjidhni mjetin e kontaktit',
},
selectCommunciationRequestType: {
fr: "Préciser l'objet de la communication",
en: 'Select communication object',
sq: 'Zgjidhni objektin e komunikimit',
},
selectCommunciationRequestReason: {
fr: 'Préciser le motif de relance',
en: 'Select reminder reason',
sq: 'Zgjidhni arsyen e kujtesës',
},
communicationRequestValidation: { fr: 'Confirmation', en: 'Confirmation', sq: 'Konfirmim' },
communicationSummaryContent: {
fr: 'Vous souhaitez envoyer :',
en: 'You are about to send :',
sq: 'Ju jeni duke dërguar :',
},
communicationRequestValidation: { fr: 'Confirmation', en: 'Confirmation' },
communicationSummaryContent: { fr: 'Vous souhaitez envoyer :', en: 'You are about to send :' },
communicationSummaryRecipientAddress: {
fr: "A l'adresse suivante :",
en: 'To the following address :',
sq: 'Në adresën e mëposhtme :',
},
communicationSummaryRecipient: {
fr: 'Destinataire',
en: 'Recipient',
sq: 'Marrësi',
},
communicationSummaryInterviewerAddress: {
fr: "Coordonnées de l'enquêteur·rice :",
en: 'Interviewer contact information :',
sq: 'Informacioni i kontaktit të intervistuesit :',
},
communicationSummaryInterviewer: {
fr: 'Enquêteur',
en: 'Interviewer',
sq: 'Intervistuesi',
},
communicationStatusInit: { fr: 'Créé', en: 'Created' },
communicationStatusReady: { fr: 'Enregistré', en: 'Created' },
communicationStatusSubmitted: { fr: 'Envoyé', en: 'Submitted' },
communicationStatusFailed: { fr: 'En échec', en: 'Failed' },
communicationStatusUndelivered: { fr: 'Pli non délivré', en: 'Undelivered' },
communicationStatusCancelled: { fr: 'Annulé', en: 'Cancelled' },
communicationStatusOn: { fr: 'le', en: 'on' },
communicationStatusInit: { fr: 'Créé', en: 'Created', sq: 'Krijuar' },
communicationStatusReady: { fr: 'Enregistré', en: 'Created', sq: 'Regjistruar' },
communicationStatusSubmitted: { fr: 'Envoyé', en: 'Submitted', sq: 'Dërguar' },
communicationStatusFailed: { fr: 'En échec', en: 'Failed', sq: 'Dështuar' },
communicationStatusUndelivered: { fr: 'Pli non délivré', en: 'Undelivered', sq: 'E pa dërguar' },
communicationStatusCancelled: { fr: 'Annulé', en: 'Cancelled', sq: 'Anuluar' },
communicationStatusOn: { fr: 'le', en: 'on', sq: 'më' },
};
export default communicationMessage;
59 changes: 46 additions & 13 deletions src/i18n/contactAttemptMessage.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,70 @@
const contactAttemptMessage = {
interviewAccepted: { fr: 'Enquête acceptée', en: 'Interview accepted' },
refusal: { fr: `Refus`, en: 'Refusal' },
noContact: { fr: 'Pas de contact', en: 'No contact' },
appointmentMade: { fr: 'Rendez-vous pris', en: 'Appointment made' },
interviewAccepted: {
fr: 'Enquête acceptée',
en: 'Interview accepted',
sq: 'Intervista u pranua',
},
refusal: { fr: `Refus`, en: 'Refusal', sq: 'Refuzim' },
noContact: { fr: 'Pas de contact', en: 'No contact', sq: 'Asnjë kontakt' },
appointmentMade: { fr: 'Rendez-vous pris', en: 'Appointment made', sq: 'Takimi u caktua' },
temporaryUnavailable: {
fr: `Contact établi, à recontacter`,
en: 'Contact made, to be recontacted',
sq: 'Kontakti u bë, për tu rikontaktuar',
},
messageSent: {
fr: "Dépôt d'un message",
en: 'Message sent',
sq: 'Mesazhi u dërgua',
},
unusableContactData: {
fr: 'Données de contact inutilisables',
en: 'Unusable contact data',
sq: 'Të dhënat e kontaktit të papërdorshme',
},
permanentlyUnavailable: {
fr: 'Indisponibilité définitive',
en: 'Permanently unavailable',
sq: 'Përgjithmonë e padisponueshme',
},
noticeOfPassageSent: {
fr: "Dépôt d'un avis de passage",
en: 'Notice of passage sent',
sq: 'Njoftimi i kalimit u dërgua',
},
permanentlyUnavailable: { fr: 'Indisponibilité définitive', en: 'Permanently unavailable' },
noticeOfPassageSent: { fr: "Dépôt d'un avis de passage", en: 'Notice of passage sent' },
notificationLetterHandDelivered: {
fr: 'Lettre-avis remise en main propre',
en: 'Notification letter hand-delivered',
sq: 'Letra njoftimi u dorëzua personalisht',
},
contactAttempts: { fr: 'Mes contacts', en: 'Contacts' },
contactAttempts: { fr: 'Mes contacts', en: 'Contacts', sq: 'Kontaktet e mia' },
contactAttempt: {
fr: 'Choisir le type de contact',
en: 'Select contact attempt type',
sq: 'Zgjidhni llojin e përpjekjes për kontakt',
},
noContactAttempt: {
fr: "Pas d'essais de contact",
en: 'No contacts attempts',
sq: 'Asnjë përpjekje për kontakt',
},
chooseAnOption: {
fr: 'Choisissez une option',
en: 'Choose an option',
sq: 'Zgjidhni një opsion',
},
telephone: { fr: 'Téléphone', en: 'Telephone', sq: 'Telefoni' },
datePicking: {
fr: "Préciser la date de l'essai",
en: 'Specify the date of the attempt',
sq: 'Përcaktoni datën e përpjekjes',
},
contactAttemptDeletion: {
fr: "Supprimer l'essai de contact",
en: 'Delete contact attempt',
sq: 'Fshi përpjekjen për kontakt',
},
noContactAttempt: { fr: "Pas d'essais de contact", en: 'No contacts attempts' },
chooseAnOption: { fr: 'Choisissez une option', en: 'Choose an option' },
telephone: { fr: 'Téléphone', en: 'Telephone' },
datePicking: { fr: "Préciser la date de l'essai", en: 'Specify the date of the attempt' },
contactAttemptDeletion: { fr: "Supprimer l'essai de contact", en: 'Delete contact attempt' },
at: { fr: 'à', en: 'at' },
at: { fr: 'à', en: 'at', sq: 'në' },
};

export default contactAttemptMessage;
Loading

0 comments on commit 6d70f54

Please sign in to comment.