Procházet zdrojové kódy

update multi lang di login

Yulian před 2 měsíci
rodič
revize
1141dcb855

+ 5 - 0
assets/lang/ar.json

@@ -100,6 +100,11 @@
   "japanese": "اليابانية",
   "korean": "الكورية",
   "chinese": "الصينية",
+  "german": "الألمانية",
+  "french": "الفرنسية",
+  "hindi": "الهندية",
+  "arabic": "العربية",
+  "dutch": "الهولندية",
   "chooseLanguage": "اختر اللغة",
   "rate": "التقييم",
   "rated": "تم تقديم التقييم.",

+ 336 - 0
assets/lang/de.json

@@ -0,0 +1,336 @@
+{
+  "account": "Konto",
+  "addNote": "Notiz hinzufügen",
+  "addNoteCancel": "Stornierungsnotiz hinzufügen",
+  "all": "Alle",
+  "anyNote": "Gibt es eine Notiz für den Mitarbeiter?",
+  "appointment": "Ernennung",
+  "attach": "Bild anhängen",
+  "buttonCancel": "Mission abbrechen",
+  "buttonLogin": "Anmelden",
+  "buttonNo": "NEIN",
+  "buttonResubmit": "ERNEUT MELDEN",
+  "buttonScan": "QR scannen",
+  "buttonSendEmergency": "NOTFALL SENDEN",
+  "buttonSendComplaint": "BESCHWERDE SENDEN",
+  "buttonSendRequest": "Anfrage senden",
+  "buttonYes": "JA",
+  "buttonSure": "JA, SICHER",
+  "buttonBack": "Zurück",
+  "canceledBy": "Abgebrochen von",
+  "category": "Kategorie",
+  "scope": "Umfang",
+  "changeScope": "Umfang ändern",
+  "chatClosed": "Dieses Gespräch wurde geschlossen.",
+  "chooseService": "Wähle den gewünschten Dienst",
+  "complaintText": "Was ist das Problem? Lass die Experten sich darum kümmern.",
+  "complaint": "Beschwerde",
+  "defaultLocation": "Standardstandort",
+  "detail": "Details",
+  "disatisfied": "Unzufrieden",
+  "emergencyText": "Alle dringenden und kritischen Angelegenheiten, die sofort behandelt werden müssen.",
+  "emergency": "Notfall",
+  "forum": "Forum",
+  "frequentlyText": "Was du oft brauchst, haben wir hier gesammelt.",
+  "frequently": "Häufig angefordert",
+  "frequentlyTitle": "Häufig angefordert",
+  "frequentlyTitleText": "Häufig angeforderte Berichte",
+  "history": "Verlauf",
+  "lessSatisfied": "Wenig zufrieden",
+  "location": "Standort",
+  "logout": "Abmelden",
+  "menuAccount": "Konto",
+  "menuHistory": "Verlauf",
+  "menuService": "Dienst",
+  "menuHome": "Startseite",
+  "message": "Nachricht",
+  "note": "Notiz",
+  "passwordEmpty": "Passwort darf nicht leer sein",
+  "password": "Passwort",
+  "phoneNumber": "Telefonnummer",
+  "placeholderLocation": "Standort eingeben",
+  "placeholderNote": "Notiz schreiben",
+  "rateMission": "Mission bewerten",
+  "reallyPleased": "Sehr zufrieden",
+  "requestText2": "Was wird angefordert?",
+  "requestDesc": "Wenn du Hilfe brauchst, zögere nicht.",
+  "requestTitle": "Wobei brauchst du Hilfe?",
+  "request": "Anfrage",
+  "satisfactionAsk": "Bist du zufrieden?",
+  "satisfied": "Ziemlich zufrieden",
+  "scanQr": "Bitte scanne zuerst den QR-Code, um die App zu verwenden.",
+  "serialNumber": "Seriennummer",
+  "servantGroup": "Berichtsgruppe",
+  "servant": "Ausführender",
+  "service": "Dienst",
+  "specifyAnotherLocation": "Ich bin an einem anderen Ort",
+  "specifyLocation": "Standort festlegen",
+  "startDoing": "Beginnen",
+  "stateCancel": "Abbrechen",
+  "stateCanceled": "Abgebrochen",
+  "stateDone": "Bearbeitet",
+  "stateFinish": "Abgeschlossen",
+  "stateQueue": "Warteschlange",
+  "stateRequested": "Angefordert",
+  "state": "Status",
+  "sure": "Bist du sicher?",
+  "switch": "Wechseln",
+  "system": "System",
+  "textCancel": "Abbrechen",
+  "textHistory": "Berichte, die du erstellt hast",
+  "textLogout": "Du wirst keine Benachrichtigungen mehr erhalten und keine Berichte mehr erstellen können. Bist du sicher, dass du dich abmelden möchtest?",
+  "textResubmit": "Du wirst diesen Bericht erneut an den Mitarbeiter senden.",
+  "ticketNumber": "Ticketnummer",
+  "timeline": "Zeitverlauf",
+  "today": "Heute",
+  "unrated": "Keine Bewertung für diese Mission",
+  "userEmpty": "Benutzername darf nicht leer sein",
+  "userId": "Benutzername",
+  "version": "Version",
+  "verySatisfied": "Zufrieden",
+  "whatComplain": "Was ist die Beschwerde?",
+  "whatHappen": "Was ist passiert?",
+  "whatNext": "Bleib ruhig. Was kommt als Nächstes?",
+  "whatProblem": "Was ist das Problem?",
+  "writeMessage": "Nachricht schreiben",
+  "yesterday": "Gestern",
+  "language": "Sprache",
+  "bahasa": "Indonesisch",
+  "english": "Englisch",
+  "japanese": "Japanisch",
+  "korean": "Koreanisch",
+  "chinese": "Chinesisch",
+  "german": "Deutsch",
+  "french": "Französisch",
+  "hindi": "Hindi",
+  "arabic": "Arabisch",
+  "dutch": "Niederländisch",
+  "chooseLanguage": "Sprache wählen",
+  "rate": "Bewertung",
+  "rated": "Bewertung wurde abgegeben.",
+  "rateText": "Du bist [satisfaction] mit dieser Mission.",
+  "settingPassword": "Passwort ändern",
+  "oldPassword": "Altes Passwort",
+  "newPassword": "Neues Passwort",
+  "confirmPassword": "Neues Passwort bestätigen",
+  "buttonSave": "Neues Passwort speichern",
+  "settingPasswordText": "Passwort hier festlegen",
+  "autoResponseText": "Deine Anfrage wird vom System sofort bearbeitet.",
+  "reply": "Antwort",
+  "selectPicture": "Medien auswählen",
+  "fromGallery": "Aus Galerie",
+  "fromCamera": "Foto aufnehmen",
+  "sendPicture": "Bild senden",
+  "seeAttachment": "Anhang anzeigen",
+  "confirmCancel": "Bist du sicher, dass du abbrechen möchtest?",
+  "selectDate": "Datum auswählen",
+  "lengthMax": "Maximale Notizlänge: 128 Zeichen.",
+  "locRequired": "Standort darf nicht leer sein.",
+  "idRequired": "ID darf nicht leer sein.",
+  "dateRequired": "Datum darf nicht leer sein.",
+  "sendLater": "Später senden",
+  "thank": "Danke",
+  "pleaseWait": "Bitte warten",
+  "sendSuccess": "Erfolgreich gesendet",
+  "followUp": "Der Mitarbeiter wird sich bald darum kümmern.",
+  "okGot": "OK, VERSTANDEN",
+  "okWait": "OK, WIRD GEWARTET",
+  "errorConnection": "Verbindungsfehler. Bitte später erneut versuchen.",
+  "noInternet": "Oh nein, keine Internetverbindung.",
+  "invalidLogin": "Benutzername oder Passwort falsch.",
+  "invalidPhone": "Telefonnummer nicht registriert.",
+  "expAccount": "Konto ist abgelaufen.",
+  "errorServer": "Serverfehler. Bitte später erneut versuchen.",
+  "accessDenied": "Zugriff verweigert",
+  "licenseProblem": "Die App kann aufgrund eines Lizenzproblems nicht verwendet werden.",
+  "invalidVersion": "App-Version nicht kompatibel",
+  "sugestVersion": "Bitte verwende die App-Version",
+  "currentVersion": "Installierte App-Version ist",
+  "contactAdmin": "Bitte kontaktiere den Administrator für weitere Informationen.",
+  "pressAgain": "Nochmals drücken zum Beenden.",
+  "notFound": "Daten nicht gefunden.",
+  "notFound2": "Was du suchst, ist hier nicht vorhanden..!",
+  "noInternetTitle": "Keine Internetverbindung.",
+  "noInternetDesc": "Überprüfe zuerst deine Internetverbindung. Dann machen wir weiter!",
+  "errorConnectTitle": "Verbindung zum Server fehlgeschlagen.",
+  "errorConnectDesc": "Frag den Administrator, du solltest dich mit dem Server verbinden können.",
+  "errorServerTitle": "Es gibt ein Problem mit dem Server.",
+  "errorServerDesc": "Keine Panik, wir arbeiten hart daran, alles unter Kontrolle zu bringen.",
+  "invalidAccountTitle": "Konto nicht registriert.",
+  "invalidAccountDesc": "Ups! Dein Konto konnte nicht verifiziert werden. Frag am besten den Administrator.",
+  "expAccountTitle": "Konto ist abgelaufen.",
+  "expAccountDesc": "Du kannst die App nicht verwenden, da dein Konto abgelaufen ist. Wenn du denkst, das ist ein Fehler, kontaktiere bitte den Administrator.",
+  "inProcess": "Wird bearbeitet",
+  "policy": "Datenschutzrichtlinie",
+  "info": "Zusätzliche Informationen",
+  "refresh": "Aktualisieren",
+  "messageCamPermission": "Kamerazugriff verweigert. Erlaube TelMessenger den Zugriff über die Einstellungen.",
+  "messageInvalidCode": "Ungültiger Code. Bitte kontaktiere den Administrator.",
+  "messagePassChanged": "Passwort erfolgreich geändert.",
+  "wrongOldPass": "Falsches altes Passwort.",
+  "checkNewPass": "Bitte überprüfe dein neues Passwort erneut.",
+  "cannotEmpty": "Daten dürfen nicht leer sein.",
+  "deletedMessage": "Diese Nachricht wurde gelöscht.",
+  "resend": "Erneut senden",
+  "delete": "Löschen",
+  "alreadyUsePass": "Dieses Passwort kann nicht verwendet werden, bitte versuche ein anderes.",
+  "notFoundImg": "Bild nicht gefunden",
+  "notFoundWorktime": "Arbeitszeit nicht gefunden. Bitte kontaktiere den Administrator.",
+  "seeAll": "Alle anzeigen",
+  "quickAction": "Schnelle Aktion",
+  "quickDesc": "Damit deine Anfrage schneller bearbeitet wird.",
+  "times": " mal",
+  "search": "Suche",
+  "searchAsk": "Suchen...",
+  "helpHint": "Beschreibe dein Problem...",
+  "inProgress": " deine Anfrage wird gerade bearbeitet.",
+  "currentActiveText": "Dein laufender Bericht",
+  "photo": "Bild",
+  "selectRecipient": "Empfänger auswählen",
+  "composeMessage": "Nachricht verfassen",
+  "to": "An",
+  "addAttachment": "Anhang hinzufügen",
+  "editAttachment": "Anhang bearbeiten",
+  "unsupportedFile": "Dateiformat nicht unterstützt",
+  "pdfFile": "PDF-Datei",
+  "other": "andere",
+  "noMessageText": "Keine Nachrichten angezeigt.",
+  "noDataText": "Keine Daten zum Anzeigen.",
+  "noPIDText": "Kein Zugriffscode gefunden.",
+  "noPIDText2": "Erhalte den Zugriffscode durch Scannen des QR-Codes oder über den Link vom TelMessenger-Lizenzinhaber.",
+  "loading": "Wird geladen...",
+  "backToLogin": "Zurück zur Login-Seite",
+  "deleteHistory": "Verlauf löschen",
+  "deleteHistoryConfirm": "Möchtest du diese Daten wirklich löschen?",
+  "couldnotDelete": "Diese Daten können nicht gelöscht werden.",
+  "allInformants": "Alle Melder",
+  "welcome": "Willkommen",
+  "createNewPassText": "Bitte erstelle ein neues Passwort, bevor du die App verwendest.",
+  "description": "Beschreibung",
+  "sorry": "Tut mir leid..!",
+  "outOfWorkTime": "Dein Bericht liegt außerhalb der Arbeitszeit des Ausführenden.",
+  "willResponse": "Sie sind wieder verfügbar am: ",
+  "canNotCancel1": "Dieser Bericht kann nicht storniert werden, da er bereits bearbeitet wird.",
+  "canNotCancel2": "Dieser Bericht kann nicht storniert werden.",
+  "priorityHigh": "Hoch",
+  "priorityLow": "Niedrig",
+  "priorityNormal": "Normal",
+  "priority": "Priorität",
+  "reported": "Gemeldet",
+  "escalationNoteBySystem": "Ernennung",
+  "finishAttachment": "Abschlussanhang",
+  "pleaseScan": "Bitte QR-Code scannen",
+  "mustScan": "Du musst den QR-Code scannen, um erneut zu melden.",
+  "changeCodeMsg": "Du wirst mit <company_name> verbunden. Möchtest du fortfahren?",
+  "currentServer": "Aktueller Server",
+  "destinationServer": "Zielserver",
+  "textContinue": "Fortfahren",
+  "transferNoteBySystem": "Übertragung",
+  "activity": "Aktivität",
+  "image": "Bild",
+  "titlePassOld": "Gib dein altes Passwort ein",
+  "titlePassNew": "Dein altes Passwort wird durch ein neues ersetzt.",
+  "setting": "Einstellungen",
+  "more": "Mehr",
+  "topMenu": "Hauptmenü",
+  "availableMenu": "Verfügbare Menüs",
+  "customize": "Anpassen",
+  "done": "Fertig",
+  "ongoing": "Laufend",
+  "maxMenu": "Maximal 7 Menüs.",
+  "searchIn": "Suchen in",
+  "yourLocation": "Dein Standort",
+  "addImage": "Möchtest du ein Bild hinzufügen?",
+  "addImageMsg": "Du kannst ein Bild als Hinweis für den Ausführenden senden.",
+  "removeImageMsg": "Ich denke, es ist nicht nötig. Entferne einfach das Bild.",
+  "sendingOpt": "Sendeoptionen",
+  "sendingOptMsg": "Möchtest du die Anfrage geplant oder sofort senden?",
+  "scheduled": "Planen",
+  "sendNow": "Jetzt senden",
+  "scheduledMsg": "* Planen = Anfrage wird zum gewählten Zeitpunkt gesendet.",
+  "reqSuccessMsg": "Bitte warten. Deine Anfrage wird bearbeitet.",
+  "noImgAttach": "Kein Bild angehängt.",
+  "btnWait": "Okay, ich warte",
+  "rateReq": "Bewerte deine Anfrage",
+  "reqAgain": "Erneut anfragen",
+  "notAvailable": "Dieses Menü ist noch nicht verfügbar.",
+  "emptyMenuAlert": "Noch kein Menü ausgewählt.",
+  "redirecting": "Lädt...",
+  "initializing": "Wird verarbeitet...",
+  "selectAlert": "Bitte wähle zuerst ein Menü.",
+  "scopeDesc": "Nutze dies, um deinen Bereich zu ändern.",
+  "notFoundKeyword": "Keine Daten gefunden für das Suchwort ",
+  "findQRcode": "Finde den QR-Code in deiner Nähe",
+  "isWorking": " bearbeitet gerade deine Anfrage.",
+  "noteLongAlert": "Du darfst maximal 128 Zeichen in der Notiz verwenden.",
+  "reqCodeNotFound": "Ungültiger Berichtscode. Bitte kontaktiere den Administrator.",
+  "noImage": "Kein Bild vorhanden",
+  "related": "Verwandte Dienste",
+  "broadcastPermission": "Nachricht kann nicht gesendet werden, keine Berechtigung.",
+  "broadcastTenant": "Nachricht kann nicht gesendet werden, Empfänger-Tenant ungültig.",
+  "reqForOthers": "Klar, ich helfe gerne anderen.",
+  "reqForMySelf": "Nein, diese Anfrage ist für mich selbst.",
+  "requestedBy": "Angefragt von",
+  "requestedFor": "Angefragt für",
+  "typeId": "Gib die ID der Person ein",
+  "idNotMatch": "Anfrage fehlgeschlagen. Diese Anfrage ist für die ID # nicht erlaubt.",
+  "idNotFound": "ID nicht gefunden. Bitte versuche eine andere.",
+  "informantNotRegistered": "Du bist nicht als Rezeptionist oder Zimmerpersonal registriert.",
+  "link_copied": "Link wurde in die Zwischenablage kopiert.",
+  "do_not_disturb": "Nicht stören",
+  "set_dnd_status": "DND-Status festlegen",
+  "active_dnd": "Aktiv",
+  "inactive_dnd": "Inaktiv",
+  "msg_dnd": "Du kannst den DND-Status im Kontomenü deaktivieren.",
+  "msg_change_active": "Möchtest du den DND-Status aktivieren?",
+  "msg_change_inactive": "Möchtest du den DND-Status deaktivieren?",
+  "info_dnd": "DND-Status aktiviert.",
+  "invalid_bridge": "Ungültige Bridge-URL.",
+  "someone_else": "Möchtest du eine Anfrage im Namen einer anderen Person stellen?",
+  "askScheduleTime": "Wann soll deine Anfrage bearbeitet werden?",
+  "scheduleMessage": "Deine Anfrage wird später bearbeitet am",
+  "scan_qr": "Meinen QR anzeigen",
+  "show_qr": "QR anzeigen",
+  "show_qr_desc": "Zeige diesen QR-Code deinen Freunden oder Kollegen, die Zugriff auf die App benötigen.",
+  "dismiss": "Überspringen",
+  "not_allow_permission": "Dein Gerät erlaubt der App keine Benachrichtigungen.",
+  "tap_here": "Tippe hier, um zu den Einstellungen zu gelangen.",
+  "doNotDisturb": "Nicht stören",
+  "info_label": "Info",
+  "display_menu": "Menüanzeige",
+  "req_group": "Berichtsgruppe",
+  "ser_group": "Ausführungsgruppe",
+  "save_rating": "Bewertung speichern",
+  "auto_translate": "Automatisch übersetzen",
+  "hold": "Zurückgestellt",
+  "holdHistory": "Verlaufsprotokoll der Zurückstellungen",
+  "pending": "Ausstehend",
+  "pending_info_success": "Wir haben ein Verbindungsproblem festgestellt. Ihre Anfrage wartet auf eine Entscheidung. Sie wird gesendet, sobald Sie wieder online sind.",
+  "pending_info_tiles": "Warten Sie auf eine Internetverbindung, um Ihre Anfrage zu senden.",
+  "pending_info_detail": "Ihre Anfrage wurde aufgrund eines Verbindungsproblems nicht gesendet.",
+  "cancel_pending": "Nur meine Anfrage stornieren",
+  "sending": "Wird gesendet",
+  "queued": "In Warteschlange",
+  "onProgress": "In Bearbeitung",
+  "showLess": "Weniger anzeigen",
+  "customTopMenu": "Hauptmenü anpassen",
+  "limitTopMenu": "Das Hauptmenü ist auf 7 Elemente begrenzt!",
+  "searchButton": "Suchen",
+  "allInformantsInfo": "Alle Melder erhalten Ihre Nachricht.",
+  "action": "Aktion",
+  "whatMakesYou": "Was macht dich",
+  "letMeWrite": "Ich habe eine andere Meinung!",
+  "writeHere": "Hier schreiben...",
+  "ratingAspect": "Bewertungsaspekt",
+  "sendingRequest": "Anfrage wird gesendet",
+  "changePriority": "Priorität ändern",
+  "referenceNumber": "Referenznummer",
+  "enterTicketNumber": "Ticketnummer eingeben",
+  "subject": "Betreff",
+  "requestReference": "Anfragereferenz",
+  "endSessionTitle": "Ihre Sitzung ist abgelaufen.",
+  "endSessionDesc": "Oh, Entschuldigung. Es sieht so aus, als hätten Sie die App eine Weile nicht benutzt. Bitte melden Sie sich erneut an, um fortzufahren.",
+  "invalidParentTicket": "Ungültige Referenznummer.",
+  "failedLoad": "App konnte nicht geladen werden.",
+  "tap2retry": "Tippen, um es erneut zu versuchen."
+}

+ 9 - 4
assets/lang/en.json

@@ -95,11 +95,16 @@
    "writeMessage": "Write message",
    "yesterday": "Yesterday",
    "language": "Language",
-   "bahasa": "Bahasa Indonesia",
+   "bahasa": "Indonesian",
    "english": "English",
-   "japanese": "日本語",
-   "korean": "한국어",
-   "chinese": "中国語",
+   "japanese": "Japanese",
+   "korean": "Korean",
+   "chinese": "Chinese",
+   "german": "Germany",
+   "french": "French",
+   "hindi": "India",
+   "arabic": "Arabic",
+   "dutch": "Netherlands",
    "chooseLanguage": "Select Language",
    "rate": "Rate",
    "rated": "This mission have been rated.",

+ 336 - 0
assets/lang/fr.json

@@ -0,0 +1,336 @@
+{
+  "account": "Compte",
+  "addNote": "Ajouter une note",
+  "addNoteCancel": "Ajouter une note d'annulation",
+  "all": "Tous",
+  "anyNote": "Y a-t-il une note pour l'agent ?",
+  "appointment": "Nomination",
+  "attach": "Joindre une image",
+  "buttonCancel": "Annuler la mission",
+  "buttonLogin": "Connexion",
+  "buttonNo": "NON",
+  "buttonResubmit": "RÉSOUMETTRE",
+  "buttonScan": "Scanner le QR",
+  "buttonSendEmergency": "ENVOYER EN URGENCE",
+  "buttonSendComplaint": "ENVOYER UNE PLAINTE",
+  "buttonSendRequest": "Envoyer une demande",
+  "buttonYes": "OUI",
+  "buttonSure": "OUI, CERTAINEMENT",
+  "buttonBack": "Retour",
+  "canceledBy": "Annulé par",
+  "category": "Catégorie",
+  "scope": "Portée",
+  "changeScope": "Changer la portée",
+  "chatClosed": "Cette conversation est fermée.",
+  "chooseService": "Choisissez le service que vous souhaitez",
+  "complaintText": "Quel est le problème ? Laissez les experts s'en occuper.",
+  "complaint": "Plainte",
+  "defaultLocation": "Emplacement par défaut",
+  "detail": "Détail",
+  "disatisfied": "Insatisfait",
+  "emergencyText": "Tout ce qui est urgent et critique à traiter immédiatement.",
+  "emergency": "Urgence",
+  "forum": "Forum",
+  "frequentlyText": "Ce que vous demandez souvent est regroupé ici.",
+  "frequently": "Demandé fréquemment",
+  "frequentlyTitle": "Demandes fréquentes",
+  "frequentlyTitleText": "Rapports fréquemment demandés",
+  "history": "Historique",
+  "lessSatisfied": "Moins satisfait",
+  "location": "Emplacement",
+  "logout": "Déconnexion",
+  "menuAccount": "Compte",
+  "menuHistory": "Historique",
+  "menuService": "Service",
+  "menuHome": "Accueil",
+  "message": "Message",
+  "note": "Note",
+  "passwordEmpty": "Le mot de passe ne peut pas être vide",
+  "password": "Mot de passe",
+  "phoneNumber": "Numéro de téléphone",
+  "placeholderLocation": "Écrire l'emplacement",
+  "placeholderNote": "Écrire une note",
+  "rateMission": "Évaluer cette mission",
+  "reallyPleased": "Très satisfait",
+  "requestText2": "Quelle est la demande ?",
+  "requestDesc": "Si vous avez besoin d'aide, n'hésitez pas.",
+  "requestTitle": "De quoi avez-vous besoin ?",
+  "request": "Demande",
+  "satisfactionAsk": "Êtes-vous satisfait ?",
+  "satisfied": "Assez satisfait",
+  "scanQr": "Veuillez scanner le QR pour commencer à utiliser l'application.",
+  "serialNumber": "Numéro de série",
+  "servantGroup": "Groupe de rapport",
+  "servant": "Exécutant",
+  "service": "Service",
+  "specifyAnotherLocation": "Je suis à un autre endroit",
+  "specifyLocation": "Spécifier l'emplacement",
+  "startDoing": "Commencer",
+  "stateCancel": "Annuler",
+  "stateCanceled": "Annulé",
+  "stateDone": "En cours",
+  "stateFinish": "Terminé",
+  "stateQueue": "En file d'attente",
+  "stateRequested": "Demandé",
+  "state": "Statut",
+  "sure": "Êtes-vous sûr ?",
+  "switch": "Changement",
+  "system": "Système",
+  "textCancel": "Annuler",
+  "textHistory": "Rapports que vous avez créés",
+  "textLogout": "Vous ne recevrez plus de notifications ni ne pourrez faire de rapports. Êtes-vous sûr de vouloir vous déconnecter ?",
+  "textResubmit": "Vous allez renvoyer ce rapport à l'agent.",
+  "ticketNumber": "Numéro de ticket",
+  "timeline": "Chronologie",
+  "today": "Aujourd'hui",
+  "unrated": "Aucune évaluation pour cette mission",
+  "userEmpty": "Le nom d'utilisateur ne peut pas être vide",
+  "userId": "Nom d'utilisateur",
+  "version": "Version",
+  "verySatisfied": "Satisfait",
+  "whatComplain": "Quelle est la plainte ?",
+  "whatHappen": "Que s'est-il passé ?",
+  "whatNext": "Restez calme. Quelle est la prochaine étape ?",
+  "whatProblem": "Quel est le problème ?",
+  "writeMessage": "Écrire un message",
+  "yesterday": "Hier",
+  "language": "Langue",
+  "bahasa": "Indonésien",
+  "english": "Anglais",
+  "japanese": "Japonais",
+  "korean": "Coréen",
+  "chinese": "Chinois",
+  "german": "Allemand",
+  "french": "Français",
+  "hindi": "Hindi",
+  "arabic": "Arabe",
+  "dutch": "Néerlandais",
+  "chooseLanguage": "Choisir la langue",
+  "rate": "Évaluation",
+  "rated": "Évaluation déjà donnée.",
+  "rateText": "Vous êtes [satisfaction] pour cette mission.",
+  "settingPassword": "Changer le mot de passe",
+  "oldPassword": "Ancien mot de passe",
+  "newPassword": "Nouveau mot de passe",
+  "confirmPassword": "Confirmer le nouveau mot de passe",
+  "buttonSave": "Enregistrer le nouveau mot de passe",
+  "settingPasswordText": "Définissez votre mot de passe ici",
+  "autoResponseText": "Votre demande sera traitée immédiatement par le système.",
+  "reply": "Réponse",
+  "selectPicture": "Choisir un média",
+  "fromGallery": "Depuis la galerie",
+  "fromCamera": "Prendre une photo",
+  "sendPicture": "Envoyer une image",
+  "seeAttachment": "Voir la pièce jointe",
+  "confirmCancel": "Êtes-vous sûr de vouloir annuler ?",
+  "selectDate": "Choisir une date",
+  "lengthMax": "Longueur maximale de la note : 128 caractères.",
+  "locRequired": "L'emplacement ne peut pas être vide.",
+  "idRequired": "L'ID ne peut pas être vide.",
+  "dateRequired": "La date ne peut pas être vide.",
+  "sendLater": "Envoyer plus tard",
+  "thank": "Merci",
+  "pleaseWait": "Veuillez patienter",
+  "sendSuccess": "Envoyé avec succès",
+  "followUp": "L'agent suivra bientôt.",
+  "okGot": "OK, COMPRIS",
+  "okWait": "OK, EN ATTENTE",
+  "errorConnection": "Erreur de connexion. Réessayez plus tard.",
+  "noInternet": "Oups, pas d'internet.",
+  "invalidLogin": "Nom d'utilisateur ou mot de passe incorrect.",
+  "invalidPhone": "Numéro de téléphone non enregistré.",
+  "expAccount": "Compte expiré.",
+  "errorServer": "Erreur du serveur. Réessayez plus tard.",
+  "accessDenied": "Accès refusé",
+  "licenseProblem": "L'application ne peut pas être utilisée en raison d'un problème de licence.",
+  "invalidVersion": "Version de l'application incorrecte",
+  "sugestVersion": "Utilisez l'application avec la version",
+  "currentVersion": "La version installée de l'application est",
+  "contactAdmin": "Veuillez contacter l'administrateur pour plus d'informations.",
+  "pressAgain": "Appuyez à nouveau pour quitter.",
+  "notFound": "Données non trouvées.",
+  "notFound2": "Ce que vous cherchez n'est pas ici..!",
+  "noInternetTitle": "Pas de connexion Internet.",
+  "noInternetDesc": "Vérifiez d'abord votre connexion Internet. Nous continuerons ensuite !",
+  "errorConnectTitle": "Échec de la connexion au serveur.",
+  "errorConnectDesc": "Demandez à l'administrateur, vous devriez pouvoir vous connecter au serveur.",
+  "errorServerTitle": "Il y a un problème avec le serveur.",
+  "errorServerDesc": "Ne paniquez pas, nous faisons de notre mieux pour tout sécuriser.",
+  "invalidAccountTitle": "Compte non enregistré.",
+  "invalidAccountDesc": "Oups ! Votre compte ne peut pas être vérifié. Veuillez contacter l'administrateur.",
+  "expAccountTitle": "Compte expiré.",
+  "expAccountDesc": "Vous ne pouvez pas accéder à l'application car votre compte a expiré. Si vous pensez que c'est une erreur, contactez l'administrateur.",
+  "inProcess": "En cours de traitement",
+  "policy": "Politique de confidentialité",
+  "info": "Informations supplémentaires",
+  "refresh": "Actualiser",
+  "messageCamPermission": "Accès à la caméra refusé. Autorisez TelMessenger à accéder à la caméra via les paramètres.",
+  "messageInvalidCode": "Code invalide. Veuillez contacter l'administrateur.",
+  "messagePassChanged": "Mot de passe modifié avec succès.",
+  "wrongOldPass": "Ancien mot de passe incorrect.",
+  "checkNewPass": "Vérifiez à nouveau le nouveau mot de passe.",
+  "cannotEmpty": "Les données ne peuvent pas être vides.",
+  "deletedMessage": "Ce message a été supprimé.",
+  "resend": "Renvoyer",
+  "delete": "Supprimer",
+  "alreadyUsePass": "Ce mot de passe ne peut pas être utilisé, essayez-en un autre.",
+  "notFoundImg": "Image non trouvée",
+  "notFoundWorktime": "Heures de travail non trouvées. Veuillez contacter l'administrateur.",
+  "seeAll": "Voir tout",
+  "quickAction": "Action rapide",
+  "quickDesc": "Pour que votre demande soit plus rapide.",
+  "times": " fois",
+  "search": "Recherche",
+  "searchAsk": "Rechercher...",
+  "helpHint": "Essayez d'écrire votre problème...",
+  "inProgress": " votre demande est en cours de traitement.",
+  "currentActiveText": "Votre rapport en cours de traitement",
+  "photo": "Image",
+  "selectRecipient": "Sélectionner le destinataire",
+  "composeMessage": "Rédiger un message",
+  "to": "À",
+  "addAttachment": "Ajouter une pièce jointe",
+  "editAttachment": "Modifier la pièce jointe",
+  "unsupportedFile": "Format de fichier non pris en charge",
+  "pdfFile": "Fichier PDF",
+  "other": "autres",
+  "noMessageText": "Aucun message à afficher.",
+  "noDataText": "Aucune donnée à afficher.",
+  "noPIDText": "Aucun code d'accès trouvé.",
+  "noPIDText2": "Obtenez le code d'accès en scannant le QR ou via le lien fourni par le titulaire de la licence TelMessenger.",
+  "loading": "Chargement...",
+  "backToLogin": "Retour à la page de connexion",
+  "deleteHistory": "Supprimer l'historique",
+  "deleteHistoryConfirm": "Êtes-vous sûr de vouloir supprimer ces données ?",
+  "couldnotDelete": "Ces données ne peuvent pas être supprimées.",
+  "allInformants": "Tous les rapporteurs",
+  "welcome": "Bienvenue",
+  "createNewPassText": "Veuillez créer un nouveau mot de passe avant d'utiliser l'application.",
+  "description": "Description",
+  "sorry": "Désolé..!",
+  "outOfWorkTime": "Votre rapport est actuellement en dehors des heures de travail de l'exécutant.",
+  "willResponse": "Ils reviendront le : ",
+  "canNotCancel1": "Ce rapport ne peut pas être annulé une fois qu'il a été traité par l'exécutant.",
+  "canNotCancel2": "Ce rapport ne peut pas être annulé.",
+  "priorityHigh": "Élevée",
+  "priorityLow": "Faible",
+  "priorityNormal": "Normale",
+  "priority": "Priorité",
+  "reported": "Signalé",
+  "escalationNoteBySystem": "Nomination",
+  "finishAttachment": "Pièce jointe de clôture",
+  "pleaseScan": "Veuillez scanner le code QR",
+  "mustScan": "Vous devez scanner le code QR pour soumettre à nouveau.",
+  "changeCodeMsg": "Vous serez connecté à <company_name>. Voulez-vous continuer ?",
+  "currentServer": "Serveur actuel",
+  "destinationServer": "Serveur de destination",
+  "textContinue": "Continuer",
+  "transferNoteBySystem": "Transfert",
+  "activity": "Activité",
+  "image": "Image",
+  "titlePassOld": "Entrez votre ancien mot de passe",
+  "titlePassNew": "Votre ancien mot de passe sera remplacé par le nouveau.",
+  "setting": "Paramètres",
+  "more": "Plus",
+  "topMenu": "Menu principal",
+  "availableMenu": "Menu disponible",
+  "customize": "Personnaliser",
+  "done": "Terminé",
+  "ongoing": "En cours",
+  "maxMenu": "Maximum de 7 menus.",
+  "searchIn": "Rechercher dans",
+  "yourLocation": "Votre emplacement",
+  "addImage": "Souhaitez-vous ajouter une image ?",
+  "addImageMsg": "Vous pouvez envoyer une image comme indication pour l'exécutant.",
+  "removeImageMsg": "Je pense que ce n'est pas nécessaire. Supprimez simplement l'image.",
+  "sendingOpt": "Options d'envoi",
+  "sendingOptMsg": "Souhaitez-vous envoyer comme demande planifiée ou immédiatement ?",
+  "scheduled": "Planifier",
+  "sendNow": "Envoyer maintenant",
+  "scheduledMsg": "* Planifier = la demande sera envoyée à l'heure que vous avez choisie dans la note.",
+  "reqSuccessMsg": "Veuillez patienter. Votre demande est en cours de traitement.",
+  "noImgAttach": "Aucune image jointe.",
+  "btnWait": "OK, je vais attendre",
+  "rateReq": "Évaluer votre demande",
+  "reqAgain": "Demander à nouveau",
+  "notAvailable": "Ce menu n'est pas encore disponible.",
+  "emptyMenuAlert": "Aucun menu sélectionné.",
+  "redirecting": "Chargement...",
+  "initializing": "Traitement...",
+  "selectAlert": "Veuillez d'abord sélectionner un menu.",
+  "scopeDesc": "Utilisez ceci pour changer votre portée.",
+  "notFoundKeyword": "Aucune donnée trouvée correspondant au mot-clé ",
+  "findQRcode": "Trouvez le code QR autour de vous",
+  "isWorking": " est en train de traiter votre demande.",
+  "noteLongAlert": "Vous ne pouvez ajouter qu'une note de 128 caractères maximum.",
+  "reqCodeNotFound": "Code de rapport invalide. Veuillez contacter l'administrateur.",
+  "noImage": "Pas d'image",
+  "related": "Services associés",
+  "broadcastPermission": "Impossible d'envoyer le message, vous n'avez pas la permission.",
+  "broadcastTenant": "Impossible d'envoyer le message, le locataire destinataire n'est pas valide.",
+  "reqForOthers": "Bien sûr, j'aime aider les autres.",
+  "reqForMySelf": "Non, cette demande est pour moi.",
+  "requestedBy": "Demandé par",
+  "requestedFor": "Demandé pour",
+  "typeId": "Entrez l'ID de cette personne",
+  "idNotMatch": "Échec de l'envoi de la demande. Cette demande n'est pas autorisée pour l'ID #.",
+  "idNotFound": "Impossible de trouver l'ID fourni. Veuillez essayer un autre ID.",
+  "informantNotRegistered": "Vous n'êtes pas enregistré comme réceptionniste ou agent.",
+  "link_copied": "Le lien a été copié dans le presse-papiers.",
+  "do_not_disturb": "Ne pas déranger",
+  "set_dnd_status": "Définir le statut DND",
+  "active_dnd": "Actif",
+  "inactive_dnd": "Inactif",
+  "msg_dnd": "Vous pouvez désactiver le statut DND via le menu Compte.",
+  "msg_change_active": "Souhaitez-vous activer le statut DND ?",
+  "msg_change_inactive": "Souhaitez-vous désactiver le statut DND ?",
+  "info_dnd": "Statut DND activé.",
+  "invalid_bridge": "URL de passerelle invalide.",
+  "someone_else": "Souhaitez-vous faire une demande au nom de quelqu'un d'autre ?",
+  "askScheduleTime": "Quand votre demande doit-elle être traitée ?",
+  "scheduleMessage": "Votre demande sera traitée plus tard à",
+  "scan_qr": "Afficher mon QR",
+  "show_qr": "Afficher le QR",
+  "show_qr_desc": "Montrez ce QR à vos amis ou collègues qui ont besoin d'accéder à l'application.",
+  "dismiss": "Ignorer",
+  "not_allow_permission": "Votre appareil n'autorise pas l'application à recevoir des notifications.",
+  "tap_here": "Appuyez ici pour accéder aux paramètres.",
+  "doNotDisturb": "Ne pas déranger",
+  "info_label": "Info",
+  "display_menu": "Affichage du menu",
+  "req_group": "Groupe de rapports",
+  "ser_group": "Groupe d'exécutants",
+  "save_rating": "Enregistrer l'évaluation",
+  "auto_translate": "Traduction automatique",
+  "hold": "Suspendu",
+  "holdHistory": "Historique des suspensions",
+  "pending": "En attente",
+  "pending_info_success": "Nous avons détecté un problème de connexion. Votre demande est en attente de décision. Elle sera renvoyée lorsque vous serez de nouveau en ligne.",
+  "pending_info_tiles": "Attendez la connexion Internet pour envoyer votre demande.",
+  "pending_info_detail": "Votre demande n'a pas été envoyée en raison d'un problème de connexion.",
+  "cancel_pending": "Annuler simplement ma demande",
+  "sending": "Envoi",
+  "queued": "En file d'attente",
+  "onProgress": "En cours",
+  "showLess": "Afficher moins",
+  "customTopMenu": "Personnaliser le menu principal",
+  "limitTopMenu": "Le menu principal est limité à 7 éléments !",
+  "searchButton": "Rechercher",
+  "allInformantsInfo": "Tous les rapporteurs recevront votre message.",
+  "action": "Action",
+  "whatMakesYou": "Qu'est-ce qui vous rend",
+  "letMeWrite": "J'ai une autre opinion !",
+  "writeHere": "Écrivez ici...",
+  "ratingAspect": "Aspect de l'évaluation",
+  "sendingRequest": "Envoi de la demande",
+  "changePriority": "Changer la priorité",
+  "referenceNumber": "Numéro de référence",
+  "enterTicketNumber": "Entrez le numéro du ticket",
+  "subject": "Sujet",
+  "requestReference": "Référence de la demande",
+  "endSessionTitle": "Votre session est terminée.",
+  "endSessionDesc": "Oh, désolé. Il semble que vous n'ayez pas utilisé l'application depuis un moment. Pour des raisons de sécurité, veuillez vous reconnecter avant de continuer.",
+  "invalidParentTicket": "Numéro de référence invalide.",
+  "failedLoad": "Échec du chargement de l'application.",
+  "tap2retry": "Appuyez pour réessayer."
+}

+ 336 - 0
assets/lang/hi.json

@@ -0,0 +1,336 @@
+{
+  "account": "खाता",
+  "addNote": "नोट जोड़ें",
+  "addNoteCancel": "रद्द करने का नोट जोड़ें",
+  "all": "सभी",
+  "anyNote": "क्या अधिकारी के लिए कोई नोट है?",
+  "appointment": "नियुक्ति",
+  "attach": "छवि संलग्न करें",
+  "buttonCancel": "मिशन रद्द करें",
+  "buttonLogin": "लॉगिन करें",
+  "buttonNo": "नहीं",
+  "buttonResubmit": "फिर से रिपोर्ट करें",
+  "buttonScan": "QR स्कैन करें",
+  "buttonSendEmergency": "आपातकाल भेजें",
+  "buttonSendComplaint": "शिकायत भेजें",
+  "buttonSendRequest": "अनुरोध भेजें",
+  "buttonYes": "हाँ",
+  "buttonSure": "हाँ, निश्चित",
+  "buttonBack": "वापस जाएं",
+  "canceledBy": "द्वारा रद्द किया गया",
+  "category": "श्रेणी",
+  "scope": "दायरा",
+  "changeScope": "दायरा बदलें",
+  "chatClosed": "यह बातचीत बंद हो गई है।",
+  "chooseService": "वांछित सेवा चुनें",
+  "complaintText": "क्या समस्या है? विशेषज्ञों को इसे संभालने दें।",
+  "complaint": "शिकायत",
+  "defaultLocation": "डिफ़ॉल्ट स्थान",
+  "detail": "विवरण",
+  "disatisfied": "असंतुष्ट",
+  "emergencyText": "सभी तात्कालिक और गंभीर मामलों को तुरंत संभालना आवश्यक है।",
+  "emergency": "आपातकाल",
+  "forum": "फोरम",
+  "frequentlyText": "जो आप अक्सर मांगते हैं, हमने उन्हें यहाँ इकट्ठा किया है।",
+  "frequently": "अक्सर अनुरोधित",
+  "frequentlyTitle": "अक्सर अनुरोधित",
+  "frequentlyTitleText": "अक्सर अनुरोधित रिपोर्टें",
+  "history": "इतिहास",
+  "lessSatisfied": "कम संतुष्ट",
+  "location": "स्थान",
+  "logout": "लॉगआउट करें",
+  "menuAccount": "खाता",
+  "menuHistory": "इतिहास",
+  "menuService": "सेवा",
+  "menuHome": "होम",
+  "message": "संदेश",
+  "note": "नोट",
+  "passwordEmpty": "पासवर्ड खाली नहीं हो सकता",
+  "password": "पासवर्ड",
+  "phoneNumber": "फोन नंबर",
+  "placeholderLocation": "स्थान दर्ज करें",
+  "placeholderNote": "नोट लिखें",
+  "rateMission": "इस मिशन को रेट करें",
+  "reallyPleased": "बहुत संतुष्ट",
+  "requestText2": "क्या अनुरोध किया गया है?",
+  "requestDesc": "अगर आपको मदद चाहिए, तो संकोच न करें।",
+  "requestTitle": "आपको किस चीज़ में मदद चाहिए?",
+  "request": "अनुरोध",
+  "satisfactionAsk": "क्या आप संतुष्ट हैं?",
+  "satisfied": "काफी संतुष्ट",
+  "scanQr": "ऐप का उपयोग शुरू करने के लिए कृपया पहले QR स्कैन करें।",
+  "serialNumber": "क्रम संख्या",
+  "servantGroup": "रिपोर्ट समूह",
+  "servant": "कार्यान्वयनकर्ता",
+  "service": "सेवा",
+  "specifyAnotherLocation": "मैं किसी अन्य स्थान पर हूँ",
+  "specifyLocation": "स्थान निर्दिष्ट करें",
+  "startDoing": "शुरू करें",
+  "stateCancel": "रद्द करें",
+  "stateCanceled": "रद्द किया गया",
+  "stateDone": "किया गया",
+  "stateFinish": "पूरा हुआ",
+  "stateQueue": "प्रतीक्षा सूची",
+  "stateRequested": "अनुरोधित",
+  "state": "स्थिति",
+  "sure": "क्या आप निश्चित हैं?",
+  "switch": "स्विच करें",
+  "system": "सिस्टम",
+  "textCancel": "रद्द करें",
+  "textHistory": "आपके द्वारा बनाई गई रिपोर्टें",
+  "textLogout": "आपको अब सूचनाएं नहीं मिलेंगी और आप रिपोर्ट नहीं बना पाएंगे। क्या आप वाकई लॉगआउट करना चाहते हैं?",
+  "textResubmit": "आप यह रिपोर्ट फिर से अधिकारी को भेजेंगे।",
+  "ticketNumber": "टिकट नंबर",
+  "timeline": "समयरेखा",
+  "today": "आज",
+  "unrated": "इस मिशन के लिए कोई रेटिंग नहीं है",
+  "userEmpty": "उपयोगकर्ता नाम खाली नहीं हो सकता",
+  "userId": "उपयोगकर्ता नाम",
+  "version": "संस्करण",
+  "verySatisfied": "संतुष्ट",
+  "whatComplain": "शिकायत क्या है?",
+  "whatHappen": "क्या हुआ?",
+  "whatNext": "शांत रहें। अगली जानकारी क्या है?",
+  "whatProblem": "क्या समस्या है?",
+  "writeMessage": "संदेश लिखें",
+  "yesterday": "कल",
+  "language": "भाषा",
+  "bahasa": "इंडोनेशियाई",
+  "english": "अंग्रेज़ी",
+  "japanese": "जापानी",
+  "korean": "कोरियाई",
+  "chinese": "चीनी",
+  "german": "जर्मन",
+  "french": "फ्रेंच",
+  "hindi": "हिंदी",
+  "arabic": "अरबी",
+  "dutch": "डच",
+  "chooseLanguage": "भाषा चुनें",
+  "rate": "रेटिंग",
+  "rated": "रेटिंग दी जा चुकी है।",
+  "rateText": "आप इस मिशन के लिए [satisfaction] हैं।",
+  "settingPassword": "पासवर्ड बदलें",
+  "oldPassword": "पुराना पासवर्ड",
+  "newPassword": "नया पासवर्ड",
+  "confirmPassword": "नया पासवर्ड पुष्टि करें",
+  "buttonSave": "नया पासवर्ड सहेजें",
+  "settingPasswordText": "यहाँ अपना पासवर्ड सेट करें",
+  "autoResponseText": "आपका अनुरोध सिस्टम द्वारा तुरंत संसाधित किया जाएगा।",
+  "reply": "उत्तर",
+  "selectPicture": "मीडिया चुनें",
+  "fromGallery": "गैलरी से",
+  "fromCamera": "फोटो लें",
+  "sendPicture": "छवि भेजें",
+  "seeAttachment": "संलग्नक देखें",
+  "confirmCancel": "क्या आप वाकई रद्द करना चाहते हैं?",
+  "selectDate": "तारीख चुनें",
+  "lengthMax": "नोट की अधिकतम लंबाई 128 अक्षर है।",
+  "locRequired": "स्थान खाली नहीं हो सकता।",
+  "idRequired": "ID खाली नहीं हो सकता।",
+  "dateRequired": "तारीख खाली नहीं हो सकती।",
+  "sendLater": "बाद में भेजें",
+  "thank": "धन्यवाद",
+  "pleaseWait": "कृपया प्रतीक्षा करें",
+  "sendSuccess": "सफलतापूर्वक भेजा गया",
+  "followUp": "अधिकारी जल्द ही कार्रवाई करेगा।",
+  "okGot": "ठीक है, समझ गया",
+  "okWait": "ठीक है, प्रतीक्षा करें",
+  "errorConnection": "कनेक्शन त्रुटि। कृपया बाद में पुनः प्रयास करें।",
+  "noInternet": "ओह, इंटरनेट बंद है।",
+  "invalidLogin": "उपयोगकर्ता नाम या पासवर्ड गलत है।",
+  "invalidPhone": "फोन नंबर पंजीकृत नहीं है।",
+  "expAccount": "खाता समाप्त हो गया है।",
+  "errorServer": "सर्वर में त्रुटि हुई। कृपया बाद में पुनः प्रयास करें।",
+  "accessDenied": "पहुंच अस्वीकृत",
+  "licenseProblem": "लाइसेंस समस्या के कारण ऐप का उपयोग नहीं किया जा सकता।",
+  "invalidVersion": "ऐप संस्करण असंगत है",
+  "sugestVersion": "इस संस्करण के साथ ऐप का उपयोग करें",
+  "currentVersion": "स्थापित ऐप संस्करण है",
+  "contactAdmin": "अधिक जानकारी के लिए कृपया व्यवस्थापक से संपर्क करें।",
+  "pressAgain": "बाहर निकलने के लिए फिर से दबाएं।",
+  "notFound": "डेटा नहीं मिला।",
+  "notFound2": "जो आप खोज रहे हैं वह यहाँ नहीं है..!",
+  "noInternetTitle": "कोई इंटरनेट कनेक्शन नहीं।",
+  "noInternetDesc": "पहले अपना इंटरनेट कनेक्शन जांचें। फिर हम आगे बढ़ेंगे!",
+  "errorConnectTitle": "सर्वर से कनेक्ट करने में विफल।",
+  "errorConnectDesc": "व्यवस्थापक से पूछें, आपको सर्वर से जुड़ना चाहिए।",
+  "errorServerTitle": "सर्वर में समस्या है।",
+  "errorServerDesc": "घबराएं नहीं, हम सब कुछ नियंत्रित करने की पूरी कोशिश कर रहे हैं।",
+  "invalidAccountTitle": "खाता पंजीकृत नहीं है।",
+  "invalidAccountDesc": "उफ़! आपका खाता सत्यापित नहीं हो सका। कृपया व्यवस्थापक से संपर्क करें।",
+  "expAccountTitle": "खाता समाप्त हो गया है।",
+  "expAccountDesc": "आप ऐप में लॉगिन नहीं कर सकते क्योंकि आपका खाता समाप्त हो गया है। यदि आपको लगता है कि यह एक गलती है, तो कृपया व्यवस्थापक से संपर्क करें।",
+  "inProcess": "प्रसंस्करण में है",
+  "policy": "गोपनीयता नीति",
+  "info": "अतिरिक्त जानकारी",
+  "refresh": "रीफ़्रेश करें",
+  "messageCamPermission": "कैमरा एक्सेस अस्वीकृत। सेटिंग्स से TelMessenger को कैमरा एक्सेस की अनुमति दें।",
+  "messageInvalidCode": "अमान्य कोड। कृपया व्यवस्थापक से संपर्क करें।",
+  "messagePassChanged": "पासवर्ड सफलतापूर्वक बदला गया।",
+  "wrongOldPass": "पुराना पासवर्ड गलत है।",
+  "checkNewPass": "नया पासवर्ड दोबारा जांचें।",
+  "cannotEmpty": "डेटा खाली नहीं हो सकता।",
+  "deletedMessage": "यह संदेश हटा दिया गया है।",
+  "resend": "फिर से भेजें",
+  "delete": "हटाएं",
+  "alreadyUsePass": "यह पासवर्ड उपयोग नहीं किया जा सकता, कृपया कोई और प्रयास करें।",
+  "notFoundImg": "छवि नहीं मिली",
+  "notFoundWorktime": "कार्य समय नहीं मिला। कृपया व्यवस्थापक से संपर्क करें।",
+  "seeAll": "सभी देखें",
+  "quickAction": "त्वरित कार्रवाई",
+  "quickDesc": "ताकि आपका अनुरोध जल्दी पूरा हो सके।",
+  "times": " बार",
+  "search": "खोज",
+  "searchAsk": "खोजें...",
+  "helpHint": "अपनी समस्या लिखने की कोशिश करें...",
+  "inProgress": " आपका अनुरोध प्रसंस्करण में है।",
+  "currentActiveText": "आपकी रिपोर्ट जो अभी भी प्रसंस्करण में है",
+  "photo": "छवि",
+  "selectRecipient": "प्राप्तकर्ता चुनें",
+  "composeMessage": "संदेश लिखें",
+  "to": "को",
+  "addAttachment": "संलग्नक जोड़ें",
+  "editAttachment": "संलग्नक संपादित करें",
+  "unsupportedFile": "फ़ाइल प्रारूप समर्थित नहीं है",
+  "pdfFile": "PDF फ़ाइल",
+  "other": "अन्य",
+  "noMessageText": "कोई संदेश प्रदर्शित नहीं किया गया।",
+  "noDataText": "प्रदर्शित करने के लिए कोई डेटा नहीं है।",
+  "noPIDText": "कोई एक्सेस कोड नहीं मिला।",
+  "noPIDText2": "QR स्कैन करके या TelMessenger लाइसेंसधारी द्वारा प्रदान किए गए लिंक से एक्सेस कोड प्राप्त करें।",
+  "loading": "लोड हो रहा है...",
+  "backToLogin": "लॉगिन पृष्ठ पर वापस जाएं",
+  "deleteHistory": "इतिहास डेटा हटाएं",
+  "deleteHistoryConfirm": "क्या आप वाकई इस डेटा को हटाना चाहते हैं?",
+  "couldnotDelete": "इस डेटा को हटाया नहीं जा सकता।",
+  "allInformants": "सभी रिपोर्टकर्ता",
+  "welcome": "स्वागत है",
+  "createNewPassText": "ऐप का उपयोग शुरू करने से पहले कृपया नया पासवर्ड बनाएं।",
+  "description": "विवरण",
+  "sorry": "माफ़ कीजिए..!",
+  "outOfWorkTime": "आपकी रिपोर्ट वर्तमान में कार्य समय के बाहर है।",
+  "willResponse": "वे फिर से उपलब्ध होंगे: ",
+  "canNotCancel1": "यह रिपोर्ट रद्द नहीं की जा सकती क्योंकि इसे पहले ही निष्पादित किया जा चुका है।",
+  "canNotCancel2": "यह रिपोर्ट रद्द नहीं की जा सकती।",
+  "priorityHigh": "उच्च",
+  "priorityLow": "निम्न",
+  "priorityNormal": "सामान्य",
+  "priority": "प्राथमिकता",
+  "reported": "रिपोर्ट किया गया",
+  "escalationNoteBySystem": "नियुक्ति",
+  "finishAttachment": "समाप्ति संलग्नक",
+  "pleaseScan": "कृपया QR कोड स्कैन करें",
+  "mustScan": "आपको फिर से रिपोर्ट करने के लिए QR कोड स्कैन करना होगा।",
+  "changeCodeMsg": "आप <company_name> से जुड़ने जा रहे हैं। क्या आप जारी रखना चाहते हैं?",
+  "currentServer": "वर्तमान सर्वर",
+  "destinationServer": "गंतव्य सर्वर",
+  "textContinue": "जारी रखें",
+  "transferNoteBySystem": "स्थानांतरण",
+  "activity": "गतिविधि",
+  "image": "छवि",
+  "titlePassOld": "अपना पुराना पासवर्ड दर्ज करें",
+  "titlePassNew": "आपका पुराना पासवर्ड नए से बदल दिया जाएगा।",
+  "setting": "सेटिंग्स",
+  "more": "अधिक",
+  "topMenu": "मुख्य मेनू",
+  "availableMenu": "उपलब्ध मेनू",
+  "customize": "अनुकूलित करें",
+  "done": "हो गया",
+  "ongoing": "चल रहा है",
+  "maxMenu": "अधिकतम 7 मेनू आइटम।",
+  "searchIn": "में खोजें",
+  "yourLocation": "आपका स्थान",
+  "addImage": "क्या आप छवि जोड़ना चाहते हैं?",
+  "addImageMsg": "आप कार्यान्वयनकर्ता के लिए संकेत के रूप में छवि भेज सकते हैं।",
+  "removeImageMsg": "मुझे लगता है कि इसकी आवश्यकता नहीं है। बस छवि हटा दें।",
+  "sendingOpt": "भेजने के विकल्प",
+  "sendingOptMsg": "क्या आप इसे शेड्यूल अनुरोध के रूप में भेजना चाहते हैं या तुरंत?",
+  "scheduled": "शेड्यूल करें",
+  "sendNow": "अभी भेजें",
+  "scheduledMsg": "* शेड्यूल = अनुरोध उस समय भेजा जाएगा जिसे आपने नोट में चुना है।",
+  "reqSuccessMsg": "कृपया प्रतीक्षा करें। आपका अनुरोध संसाधित किया जा रहा है।",
+  "noImgAttach": "कोई छवि संलग्न नहीं है।",
+  "btnWait": "ठीक है, मैं प्रतीक्षा करूंगा",
+  "rateReq": "अपने अनुरोध को रेट करें",
+  "reqAgain": "फिर से अनुरोध करें",
+  "notAvailable": "यह मेनू अभी उपलब्ध नहीं है।",
+  "emptyMenuAlert": "कोई मेनू चयनित नहीं है।",
+  "redirecting": "लोड हो रहा है...",
+  "initializing": "प्रारंभ किया जा रहा है...",
+  "selectAlert": "कृपया पहले एक मेनू चुनें।",
+  "scopeDesc": "अपना कार्य क्षेत्र बदलने के लिए इसका उपयोग करें।",
+  "notFoundKeyword": "खोज शब्द के लिए कोई डेटा नहीं मिला ",
+  "findQRcode": "अपने आस-पास QR कोड खोजें",
+  "isWorking": " आपके अनुरोध पर कार्य कर रहा है।",
+  "noteLongAlert": "आप केवल अधिकतम 128 वर्णों का नोट जोड़ सकते हैं।",
+  "reqCodeNotFound": "रिपोर्ट कोड अमान्य है। कृपया व्यवस्थापक से संपर्क करें।",
+  "noImage": "कोई छवि नहीं",
+  "related": "संबंधित सेवाएं",
+  "broadcastPermission": "संदेश नहीं भेजा जा सकता, आपके पास अनुमति नहीं है।",
+  "broadcastTenant": "संदेश नहीं भेजा जा सकता, प्राप्तकर्ता टेनेंट अमान्य है।",
+  "reqForOthers": "बिलकुल, मुझे दूसरों की मदद करना पसंद है।",
+  "reqForMySelf": "नहीं, यह अनुरोध मेरे लिए है।",
+  "requestedBy": "द्वारा अनुरोधित",
+  "requestedFor": "के लिए अनुरोधित",
+  "typeId": "उस व्यक्ति की ID दर्ज करें",
+  "idNotMatch": "अनुरोध भेजने में विफल। यह अनुरोध #ID द्वारा नहीं किया जा सकता।",
+  "idNotFound": "दर्ज की गई ID नहीं मिली। कृपया कोई अन्य ID आज़माएं।",
+  "informantNotRegistered": "आप रिसेप्शनिस्ट या रूम स्टाफ के रूप में पंजीकृत नहीं हैं।",
+  "link_copied": "लिंक क्लिपबोर्ड पर कॉपी कर लिया गया है।",
+  "do_not_disturb": "डू नॉट डिस्टर्ब",
+  "set_dnd_status": "DND स्थिति सेट करें",
+  "active_dnd": "सक्रिय",
+  "inactive_dnd": "निष्क्रिय",
+  "msg_dnd": "आप खाता मेनू से DND स्थिति को अक्षम कर सकते हैं।",
+  "msg_change_active": "क्या आप DND स्थिति को सक्रिय करना चाहते हैं?",
+  "msg_change_inactive": "क्या आप DND स्थिति को निष्क्रिय करना चाहते हैं?",
+  "info_dnd": "DND स्थिति सक्रिय की गई।",
+  "invalid_bridge": "अमान्य ब्रिज URL।",
+  "someone_else": "क्या आप किसी और के लिए अनुरोध करना चाहते हैं?",
+  "askScheduleTime": "आपका अनुरोध कब निष्पादित किया जाना चाहिए?",
+  "scheduleMessage": "आपका अनुरोध बाद में निष्पादित किया जाएगा",
+  "scan_qr": "मेरा QR दिखाएं",
+  "show_qr": "QR दिखाएं",
+  "show_qr_desc": "इस QR को उन दोस्तों या सहयोगियों को दिखाएं जिन्हें ऐप का उपयोग करना है।",
+  "dismiss": "छोड़ें",
+  "not_allow_permission": "आपका डिवाइस ऐप को सूचनाएं प्राप्त करने की अनुमति नहीं देता है।",
+  "tap_here": "सेटिंग मेनू पर जाने के लिए यहां टैप करें।",
+  "doNotDisturb": "परेशान न करें",
+  "info_label": "जानकारी",
+  "display_menu": "मेनू प्रदर्शन",
+  "req_group": "रिपोर्ट समूह",
+  "ser_group": "कार्यान्वयन समूह",
+  "save_rating": "रेटिंग सहेजें",
+  "auto_translate": "स्वचालित अनुवाद",
+  "hold": "स्थगित",
+  "holdHistory": "स्थगन इतिहास",
+  "pending": "लंबित",
+  "pending_info_success": "हमें एक कनेक्शन समस्या मिली है। आपका अनुरोध निर्णय की प्रतीक्षा कर रहा है। जब आप ऑनलाइन होंगे, तो हम इसे फिर से भेजेंगे।",
+  "pending_info_tiles": "अपना अनुरोध भेजने के लिए इंटरनेट कनेक्शन की प्रतीक्षा करें।",
+  "pending_info_detail": "कनेक्शन समस्या के कारण आपका अनुरोध अभी तक नहीं भेजा गया है।",
+  "cancel_pending": "केवल मेरा अनुरोध रद्द करें",
+  "sending": "भेजा जा रहा है",
+  "queued": "प्रतीक्षा में",
+  "onProgress": "प्रगति पर है",
+  "showLess": "कम दिखाएं",
+  "customTopMenu": "मुख्य मेनू अनुकूलित करें",
+  "limitTopMenu": "मुख्य मेनू अधिकतम 7 आइटम तक सीमित है!",
+  "searchButton": "खोजें",
+  "allInformantsInfo": "आपका संदेश सभी रिपोर्टकर्ताओं को प्राप्त होगा।",
+  "action": "क्रिया",
+  "whatMakesYou": "क्या चीज़ आपको",
+  "letMeWrite": "मेरे पास एक अलग राय है!",
+  "writeHere": "यहाँ लिखें...",
+  "ratingAspect": "रेटिंग पहलू",
+  "sendingRequest": "अनुरोध भेजा जा रहा है",
+  "changePriority": "प्राथमिकता बदलें",
+  "referenceNumber": "संदर्भ संख्या",
+  "enterTicketNumber": "टिकट नंबर दर्ज करें",
+  "subject": "विषय",
+  "requestReference": "अनुरोध संदर्भ",
+  "endSessionTitle": "आपका सत्र समाप्त हो गया है।",
+  "endSessionDesc": "ओह, क्षमा करें। ऐसा लगता है कि आपने ऐप का लंबे समय से उपयोग नहीं किया है। कृपया आगे बढ़ने से पहले फिर से लॉगिन करें।",
+  "invalidParentTicket": "अमान्य संदर्भ संख्या।",
+  "failedLoad": "ऐप लोड करने में विफल।",
+  "tap2retry": "पुनः प्रयास करने के लिए टैप करें।"
+}

+ 10 - 6
assets/lang/id.json

@@ -95,11 +95,16 @@
    "writeMessage": "Tulis pesan",
    "yesterday": "Kemarin",
    "language": "Bahasa",
-   "bahasa": "Bahasa Indonesia",
-   "english": "English",
-   "japanese": "日本語",
-   "korean": "한국어",
-   "chinese": "中国語",
+   "bahasa": "Indonesia",
+   "english": "Inggris",
+   "japanese": "Jepang",
+   "korean": "Korea",
+   "chinese": "Cina",
+   "german": "Jerman",
+   "french": "Prancis",
+   "hindi": "India",
+   "arabic": "Arab",
+   "dutch": "Belanda",
    "chooseLanguage": "Pilih Bahasa",
    "rate": "Penilaian",
    "rated": "Penilaian sudah diberikan.",
@@ -328,5 +333,4 @@
    "invalidParentTicket": "Nomor referensi tidak valid.",
    "failedLoad": "Gagal memuat aplikasi.",
    "tap2retry": "Ketuk untuk mencoba kembali."
-
 }

+ 8 - 3
assets/lang/ja.json

@@ -95,11 +95,16 @@
    "writeMessage": "メッセージを書く",
    "yesterday": "昨日",
    "language": "言語",
-   "bahasa": "Bahasa Indonesia",
-   "english": "English",
+   "bahasa": "インドネシア語",
+   "english": "英語",
    "japanese": "日本語",
-   "korean": "한국어",
+   "korean": "韓国語",
    "chinese": "中国語",
+   "german": "ドイツ語",
+   "french": "フランス語",
+   "hindi": "ヒンディー語",
+   "arabic": "アラビア語",
+   "dutch": "オランダ語",
    "chooseLanguage": "言語を選択する",
    "rate": "レート",
    "rated": "このミッションは評価されています。",

+ 9 - 4
assets/lang/ko.json

@@ -95,11 +95,16 @@
    "writeMessage": "메시지 쓰기",
    "yesterday": "어제",
    "language": "언어",
-   "bahasa": "Bahasa Indonesia",
-   "english": "English",
-   "japanese": "日本語",
+   "bahasa": "인도네시아어",
+   "english": "영어",
+   "japanese": "일본어",
    "korean": "한국어",
-   "chinese": "中国語",
+   "chinese": "중국어",
+   "german": "독일어",
+   "french": "프랑스어",
+   "hindi": "힌디어",
+   "arabic": "아랍어",
+   "dutch": "네덜란드어",
    "chooseLanguage": "언어 선택",
    "rate": "비율",
    "rated": "이 임무는 평가되었습니다.",

+ 336 - 0
assets/lang/nl.json

@@ -0,0 +1,336 @@
+{
+  "account": "Account",
+  "addNote": "Notitie toevoegen",
+  "addNoteCancel": "Annuleringsnotitie toevoegen",
+  "all": "Alles",
+  "anyNote": "Is er een notitie voor de medewerker?",
+  "appointment": "Aanwijzing",
+  "attach": "Afbeelding bijvoegen",
+  "buttonCancel": "Missie annuleren",
+  "buttonLogin": "Inloggen",
+  "buttonNo": "NEE",
+  "buttonResubmit": "OPNIEUW MELDEN",
+  "buttonScan": "QR scannen",
+  "buttonSendEmergency": "NOODGEVAL VERZENDEN",
+  "buttonSendComplaint": "KLACHT VERZENDEN",
+  "buttonSendRequest": "Verzoek verzenden",
+  "buttonYes": "JA",
+  "buttonSure": "JA, ZEKER",
+  "buttonBack": "Terug",
+  "canceledBy": "Geannuleerd door",
+  "category": "Categorie",
+  "scope": "Bereik",
+  "changeScope": "Bereik wijzigen",
+  "chatClosed": "Dit gesprek is gesloten.",
+  "chooseService": "Kies de gewenste dienst",
+  "complaintText": "Wat is het probleem? Laat de experts het voor je oplossen.",
+  "complaint": "Klacht",
+  "defaultLocation": "Standaardlocatie",
+  "detail": "Details",
+  "disatisfied": "Ontevreden",
+  "emergencyText": "Alle urgente en kritieke zaken die onmiddellijk moeten worden afgehandeld.",
+  "emergency": "Noodgeval",
+  "forum": "Forum",
+  "frequentlyText": "Wat je vaak vraagt, hebben we hier verzameld.",
+  "frequently": "Vaak gevraagd",
+  "frequentlyTitle": "Vaak gevraagd",
+  "frequentlyTitleText": "Vaak aangevraagde rapporten",
+  "history": "Geschiedenis",
+  "lessSatisfied": "Minder tevreden",
+  "location": "Locatie",
+  "logout": "Uitloggen",
+  "menuAccount": "Account",
+  "menuHistory": "Geschiedenis",
+  "menuService": "Dienst",
+  "menuHome": "Startpagina",
+  "message": "Bericht",
+  "note": "Notitie",
+  "passwordEmpty": "Wachtwoord mag niet leeg zijn",
+  "password": "Wachtwoord",
+  "phoneNumber": "Telefoonnummer",
+  "placeholderLocation": "Voer locatie in",
+  "placeholderNote": "Schrijf een notitie",
+  "rateMission": "Beoordeel deze missie",
+  "reallyPleased": "Zeer tevreden",
+  "requestText2": "Wat wordt er gevraagd?",
+  "requestDesc": "Als je hulp nodig hebt, aarzel dan niet.",
+  "requestTitle": "Waar heb je hulp bij nodig?",
+  "request": "Verzoek",
+  "satisfactionAsk": "Ben je tevreden?",
+  "satisfied": "Redelijk tevreden",
+  "scanQr": "Scan eerst de QR-code om de app te gebruiken.",
+  "serialNumber": "Serienummer",
+  "servantGroup": "Rapportgroep",
+  "servant": "Uitvoerder",
+  "service": "Dienst",
+  "specifyAnotherLocation": "Ik ben op een andere locatie",
+  "specifyLocation": "Locatie opgeven",
+  "startDoing": "Beginnen",
+  "stateCancel": "Annuleren",
+  "stateCanceled": "Geannuleerd",
+  "stateDone": "Uitgevoerd",
+  "stateFinish": "Voltooid",
+  "stateQueue": "Wachtrij",
+  "stateRequested": "Aangevraagd",
+  "state": "Status",
+  "sure": "Weet je het zeker?",
+  "switch": "Overschakelen",
+  "system": "Systeem",
+  "textCancel": "Annuleren",
+  "textHistory": "Rapporten die je hebt gemaakt",
+  "textLogout": "Je ontvangt geen meldingen meer en kunt geen rapporten meer maken. Weet je zeker dat je wilt uitloggen?",
+  "textResubmit": "Je gaat dit rapport opnieuw naar de medewerker sturen.",
+  "ticketNumber": "Ticketnummer",
+  "timeline": "Tijdlijn",
+  "today": "Vandaag",
+  "unrated": "Geen beoordeling voor deze missie",
+  "userEmpty": "Gebruikersnaam mag niet leeg zijn",
+  "userId": "Gebruikersnaam",
+  "version": "Versie",
+  "verySatisfied": "Tevreden",
+  "whatComplain": "Wat is de klacht?",
+  "whatHappen": "Wat is er gebeurd?",
+  "whatNext": "Blijf rustig. Wat is de volgende stap?",
+  "whatProblem": "Wat is het probleem?",
+  "writeMessage": "Bericht schrijven",
+  "yesterday": "Gisteren",
+  "language": "Taal",
+  "bahasa": "Indonesisch",
+  "english": "Engels",
+  "japanese": "Japans",
+  "korean": "Koreaans",
+  "chinese": "Chinees",
+  "german": "Duits",
+  "french": "Frans",
+  "hindi": "Hindi",
+  "arabic": "Arabisch",
+  "dutch": "Nederlands",
+  "chooseLanguage": "Kies taal",
+  "rate": "Beoordeling",
+  "rated": "Beoordeling is al gegeven.",
+  "rateText": "Je bent [satisfaction] over deze missie.",
+  "settingPassword": "Wachtwoord wijzigen",
+  "oldPassword": "Oud wachtwoord",
+  "newPassword": "Nieuw wachtwoord",
+  "confirmPassword": "Nieuw wachtwoord bevestigen",
+  "buttonSave": "Nieuw wachtwoord opslaan",
+  "settingPasswordText": "Stel hier je wachtwoord in",
+  "autoResponseText": "Je verzoek wordt direct door het systeem behandeld.",
+  "reply": "Antwoord",
+  "selectPicture": "Media selecteren",
+  "fromGallery": "Uit galerij",
+  "fromCamera": "Foto maken",
+  "sendPicture": "Afbeelding verzenden",
+  "seeAttachment": "Bijlage bekijken",
+  "confirmCancel": "Weet je zeker dat je wilt annuleren?",
+  "selectDate": "Datum kiezen",
+  "lengthMax": "Maximale lengte van notitie is 128 tekens.",
+  "locRequired": "Locatie mag niet leeg zijn.",
+  "idRequired": "ID mag niet leeg zijn.",
+  "dateRequired": "Datum mag niet leeg zijn.",
+  "sendLater": "Later verzenden",
+  "thank": "Dank je wel",
+  "pleaseWait": "Even geduld",
+  "sendSuccess": "Succesvol verzonden",
+  "followUp": "De medewerker zal dit snel opvolgen.",
+  "okGot": "OK, BEGREPEN",
+  "okWait": "OK, WACHTEN",
+  "errorConnection": "Verbindingsfout. Probeer het later opnieuw.",
+  "noInternet": "Oeps, geen internetverbinding.",
+  "invalidLogin": "Gebruikersnaam of wachtwoord is onjuist.",
+  "invalidPhone": "Telefoonnummer niet geregistreerd.",
+  "expAccount": "Account is verlopen.",
+  "errorServer": "Er is een fout opgetreden op de server. Probeer het later opnieuw.",
+  "accessDenied": "Toegang geweigerd",
+  "licenseProblem": "App kan niet worden gebruikt vanwege een licentieprobleem.",
+  "invalidVersion": "App-versie is niet compatibel",
+  "sugestVersion": "Gebruik de app-versie",
+  "currentVersion": "Geïnstalleerde app-versie is",
+  "contactAdmin": "Neem contact op met de beheerder voor meer informatie.",
+  "pressAgain": "Druk nogmaals om af te sluiten.",
+  "notFound": "Gegevens niet gevonden.",
+  "notFound2": "Wat je zoekt is hier niet beschikbaar..!",
+  "noInternetTitle": "Geen internetverbinding.",
+  "noInternetDesc": "Controleer eerst je internetverbinding. Daarna gaan we verder!",
+  "errorConnectTitle": "Verbinding met server mislukt.",
+  "errorConnectDesc": "Vraag het aan de beheerder, je zou verbinding moeten kunnen maken met de server.",
+  "errorServerTitle": "Er is een probleem met de server.",
+  "errorServerDesc": "Geen paniek, we doen ons best om alles onder controle te krijgen.",
+  "invalidAccountTitle": "Account niet geregistreerd.",
+  "invalidAccountDesc": "Oeps! Je account kon niet worden geverifieerd. Neem contact op met de beheerder.",
+  "expAccountTitle": "Account is verlopen.",
+  "expAccountDesc": "Je kunt de app niet gebruiken omdat je account is verlopen. Als je denkt dat dit een fout is, neem dan contact op met de beheerder.",
+  "inProcess": "Wordt verwerkt",
+  "policy": "Privacybeleid",
+  "info": "Aanvullende informatie",
+  "refresh": "Vernieuwen",
+  "messageCamPermission": "Toegang tot camera geweigerd. Sta TelMessenger toe toegang te krijgen via instellingen.",
+  "messageInvalidCode": "Ongeldige code. Neem contact op met de beheerder.",
+  "messagePassChanged": "Wachtwoord succesvol gewijzigd.",
+  "wrongOldPass": "Oud wachtwoord is onjuist.",
+  "checkNewPass": "Controleer het nieuwe wachtwoord opnieuw.",
+  "cannotEmpty": "Gegevens mogen niet leeg zijn.",
+  "deletedMessage": "Dit bericht is verwijderd.",
+  "resend": "Opnieuw verzenden",
+  "delete": "Verwijderen",
+  "alreadyUsePass": "Wachtwoord kan niet worden gebruikt, probeer een ander.",
+  "notFoundImg": "Afbeelding niet gevonden",
+  "notFoundWorktime": "Werkuren niet gevonden. Neem contact op met de beheerder.",
+  "seeAll": "Alles bekijken",
+  "quickAction": "Snelle actie",
+  "quickDesc": "Zodat je verzoek sneller wordt verwerkt.",
+  "times": " keer",
+  "search": "Zoeken",
+  "searchAsk": "Zoek...",
+  "helpHint": "Probeer je probleem te beschrijven...",
+  "inProgress": " je verzoek wordt verwerkt.",
+  "currentActiveText": "Je lopende rapport",
+  "photo": "Afbeelding",
+  "selectRecipient": "Ontvanger selecteren",
+  "composeMessage": "Bericht opstellen",
+  "to": "Aan",
+  "addAttachment": "Bijlage toevoegen",
+  "editAttachment": "Bijlage bewerken",
+  "unsupportedFile": "Bestandsformaat niet ondersteund",
+  "pdfFile": "PDF-bestand",
+  "other": "overige",
+  "noMessageText": "Geen berichten om weer te geven.",
+  "noDataText": "Geen gegevens om weer te geven.",
+  "noPIDText": "Geen toegangscode gevonden.",
+  "noPIDText2": "Verkrijg de toegangscode door de QR te scannen of via de link van de TelMessenger-licentiehouder.",
+  "loading": "Bezig met laden...",
+  "backToLogin": "Terug naar inlogpagina",
+  "deleteHistory": "Verwijder geschiedenisgegevens",
+  "deleteHistoryConfirm": "Weet je zeker dat je deze gegevens wilt verwijderen?",
+  "couldnotDelete": "Deze gegevens kunnen niet worden verwijderd.",
+  "allInformants": "Alle melders",
+  "welcome": "Welkom",
+  "createNewPassText": "Maak een nieuw wachtwoord aan voordat je de app gebruikt.",
+  "description": "Beschrijving",
+  "sorry": "Sorry..!",
+  "outOfWorkTime": "Je rapport valt buiten de werktijden van de uitvoerder.",
+  "willResponse": "Ze zijn weer beschikbaar op: ",
+  "canNotCancel1": "Dit rapport kan niet worden geannuleerd zodra het is verwerkt.",
+  "canNotCancel2": "Dit rapport kan niet worden geannuleerd.",
+  "priorityHigh": "Hoog",
+  "priorityLow": "Laag",
+  "priorityNormal": "Normaal",
+  "priority": "Prioriteit",
+  "reported": "Gerapporteerd",
+  "escalationNoteBySystem": "Aanwijzing",
+  "finishAttachment": "Afsluitende bijlage",
+  "pleaseScan": "Scan de QR-code",
+  "mustScan": "Je moet de QR-code scannen om opnieuw te rapporteren.",
+  "changeCodeMsg": "Je wordt verbonden met <company_name>. Wil je doorgaan?",
+  "currentServer": "Huidige server",
+  "destinationServer": "Doelserver",
+  "textContinue": "Doorgaan",
+  "transferNoteBySystem": "Overdracht",
+  "activity": "Activiteit",
+  "image": "Afbeelding",
+  "titlePassOld": "Voer je oude wachtwoord in",
+  "titlePassNew": "Je oude wachtwoord wordt vervangen door een nieuw wachtwoord.",
+  "setting": "Instellingen",
+  "more": "Meer",
+  "topMenu": "Hoofdmenu",
+  "availableMenu": "Beschikbare menu's",
+  "customize": "Aanpassen",
+  "done": "Klaar",
+  "ongoing": "Bezig",
+  "maxMenu": "Maximaal 7 menu-items.",
+  "searchIn": "Zoeken in",
+  "yourLocation": "Je locatie",
+  "addImage": "Wil je een afbeelding toevoegen?",
+  "addImageMsg": "Je kunt een afbeelding sturen als aanwijzing voor de uitvoerder.",
+  "removeImageMsg": "Ik denk dat het niet nodig is. Verwijder gewoon de afbeelding.",
+  "sendingOpt": "Verzendopties",
+  "sendingOptMsg": "Wil je het verzoek plannen of direct verzenden?",
+  "scheduled": "Plannen",
+  "sendNow": "Nu verzenden",
+  "scheduledMsg": "* Plannen = verzoek wordt verzonden op het tijdstip dat je in de notitie hebt gekozen.",
+  "reqSuccessMsg": "Even geduld. Je verzoek wordt verwerkt.",
+  "noImgAttach": "Geen afbeelding toegevoegd.",
+  "btnWait": "Oké, ik wacht",
+  "rateReq": "Beoordeel je verzoek",
+  "reqAgain": "Opnieuw aanvragen",
+  "notAvailable": "Dit menu is nog niet beschikbaar.",
+  "emptyMenuAlert": "Er is nog geen menu geselecteerd.",
+  "redirecting": "Bezig met laden...",
+  "initializing": "Bezig met verwerken...",
+  "selectAlert": "Selecteer eerst een menu.",
+  "scopeDesc": "Gebruik dit om je bereik te wijzigen.",
+  "notFoundKeyword": "Geen gegevens gevonden voor zoekterm ",
+  "findQRcode": "Zoek de QR-code in je omgeving",
+  "isWorking": " is bezig met je verzoek.",
+  "noteLongAlert": "Je mag maximaal 128 tekens in de notitie gebruiken.",
+  "reqCodeNotFound": "Ongeldige rapportcode. Neem contact op met de beheerder.",
+  "noImage": "Geen afbeelding",
+  "related": "Gerelateerde diensten",
+  "broadcastPermission": "Kan geen bericht verzenden, je hebt geen toestemming.",
+  "broadcastTenant": "Kan geen bericht verzenden, ontvanger-tenant is ongeldig.",
+  "reqForOthers": "Natuurlijk, ik help graag anderen.",
+  "reqForMySelf": "Nee, dit verzoek is voor mijzelf.",
+  "requestedBy": "Aangevraagd door",
+  "requestedFor": "Aangevraagd voor",
+  "typeId": "Voer het ID van die persoon in",
+  "idNotMatch": "Verzenden mislukt. Dit verzoek is niet toegestaan voor ID #.",
+  "idNotFound": "ID niet gevonden. Probeer een ander ID.",
+  "informantNotRegistered": "Je bent niet geregistreerd als receptionist of kamerpersoneel.",
+  "link_copied": "Link is gekopieerd naar klembord.",
+  "do_not_disturb": "Niet storen",
+  "set_dnd_status": "DND-status instellen",
+  "active_dnd": "Actief",
+  "inactive_dnd": "Niet actief",
+  "msg_dnd": "Je kunt de DND-status uitschakelen via het menu Account.",
+  "msg_change_active": "Wil je de DND-status activeren?",
+  "msg_change_inactive": "Wil je de DND-status deactiveren?",
+  "info_dnd": "DND-status geactiveerd.",
+  "invalid_bridge": "Ongeldige bridge-URL.",
+  "someone_else": "Wil je een verzoek indienen namens iemand anders?",
+  "askScheduleTime": "Wanneer moet je verzoek worden uitgevoerd?",
+  "scheduleMessage": "Je verzoek wordt later uitgevoerd op",
+  "scan_qr": "Mijn QR tonen",
+  "show_qr": "QR tonen",
+  "show_qr_desc": "Toon deze QR aan je vrienden of collega's die toegang tot de app nodig hebben.",
+  "dismiss": "Overslaan",
+  "not_allow_permission": "Je apparaat staat de app niet toe om meldingen te ontvangen.",
+  "tap_here": "Tik hier om naar het instellingenmenu te gaan.",
+  "doNotDisturb": "Niet storen",
+  "info_label": "Info",
+  "display_menu": "Menuweergave",
+  "req_group": "Rapportgroep",
+  "ser_group": "Uitvoerdersgroep",
+  "save_rating": "Beoordeling opslaan",
+  "auto_translate": "Automatisch vertalen",
+  "hold": "Uitgesteld",
+  "holdHistory": "Uitstelgeschiedenis",
+  "pending": "In afwachting",
+  "pending_info_success": "We hebben een verbindingsprobleem gevonden. Je verzoek wacht op goedkeuring. We sturen het opnieuw zodra je weer online bent.",
+  "pending_info_tiles": "Wacht op een internetverbinding om je verzoek te verzenden.",
+  "pending_info_detail": "Je verzoek is nog niet verzonden vanwege een verbindingsprobleem.",
+  "cancel_pending": "Annuleer alleen mijn verzoek",
+  "sending": "Verzenden",
+  "queued": "In wachtrij",
+  "onProgress": "Bezig",
+  "showLess": "Minder weergeven",
+  "customTopMenu": "Hoofdmenu aanpassen",
+  "limitTopMenu": "Hoofdmenu is beperkt tot 7 items!",
+  "searchButton": "Zoeken",
+  "allInformantsInfo": "Alle melders ontvangen je bericht.",
+  "action": "Actie",
+  "whatMakesYou": "Wat maakt jou",
+  "letMeWrite": "Ik heb een andere mening!",
+  "writeHere": "Schrijf hier...",
+  "ratingAspect": "Beoordelingsaspect",
+  "sendingRequest": "Verzoek verzenden",
+  "changePriority": "Prioriteit wijzigen",
+  "referenceNumber": "Referentienummer",
+  "enterTicketNumber": "Voer ticketnummer in",
+  "subject": "Onderwerp",
+  "requestReference": "Verwijsnummer verzoek",
+  "endSessionTitle": "Je sessie is verlopen.",
+  "endSessionDesc": "Oeps, het lijkt erop dat je de app al een tijdje niet hebt gebruikt. Log opnieuw in om verder te gaan.",
+  "invalidParentTicket": "Ongeldig referentienummer.",
+  "failedLoad": "App kon niet worden geladen.",
+  "tap2retry": "Tik om opnieuw te proberen."
+}

+ 10 - 5
assets/lang/zh.json

@@ -95,11 +95,16 @@
    "writeMessage": "写信息",
    "yesterday": "昨天",
    "language": "语言",
-   "bahasa": "Bahasa Indonesia",
-   "english": "English",
-   "japanese": "日本語",
-   "korean": "한국어",
-   "chinese": "中国語",
+   "bahasa": "印尼语",
+   "english": "英语",
+   "japanese": "日语",
+   "korean": "韩语",
+   "chinese": "中文",
+   "german": "德语",
+   "french": "法语",
+   "hindi": "印地语",
+   "arabic": "阿拉伯语",
+   "dutch": "荷兰语",
    "chooseLanguage": "选择语言",
    "rate": "速度",
    "rated": "该任务已被评级。",

+ 5 - 1
lib/main.dart

@@ -79,7 +79,11 @@ void main() async{
               Locale('ja'),
               Locale('zh'),
               Locale('ko'),
-              Locale('ar')
+              Locale('ar'),
+              Locale('fr'),
+              Locale('de'),
+              Locale('hi'),
+              Locale('nl')
             ],
             startLocale: Locale('id'),
             saveLocale: true,

+ 62 - 39
lib/src/layouts/auth/login.dart

@@ -59,7 +59,10 @@ class _LoginPageState extends State<LoginPage> {
         companyName = lics['companyName']??'';
         serialNumber = lics['serialNumber']??'';
         companyLogo = lics['logo']??'';
-        if(1698720817 <= lics['serverVersion']){
+        var sv = lics['serverVersion'];
+        if(1754624839 <= sv){
+          lang = lics['_validLang'] ?? [];
+        } else if(1698720817 <= lics['serverVersion']){
           lang = lics['languages'] != null ? lics['languages'].split(',') : [];
         }
       });
@@ -80,13 +83,26 @@ class _LoginPageState extends State<LoginPage> {
           ),
           SingleChildScrollView(
             child: Container(
-              padding: EdgeInsets.fromLTRB(16, 100, 16, 16),
+              padding: EdgeInsets.all(16),
               width: MediaQuery.of(context).size.width,
-              height: kIsWeb && MediaQuery.of(context).size.height<720 ? 720 : MediaQuery.of(context).size.height,
+              height: kIsWeb && MediaQuery.of(context).size.height<820 ? 820 : MediaQuery.of(context).size.height,
               decoration: BoxDecoration(gradient: LinearGradient(begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [primaryColor.withValues(alpha: 0.50), Colors.black.withValues(alpha: 0.91)])),
               child: SafeArea(
                 child: Column(
                   children: [
+                    Container(
+                      padding: EdgeInsets.symmetric(horizontal: 8, vertical: 16),
+                      // height: 90,
+                      child: Row(
+                        crossAxisAlignment: CrossAxisAlignment.center,
+                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                        // padding: EdgeInsets.symmetric(horizontal: 16),
+                        children: [
+                          backButton(),
+                          langWdgt()
+                        ],
+                      ),
+                    ),
                     Image.asset('assets/image/logo/logo.png', height: companyLogo.isNotEmpty?25:40),
                     companyLogo.isNotEmpty?Container(
                       margin: EdgeInsets.only(top: 30, bottom: 40),
@@ -113,16 +129,16 @@ class _LoginPageState extends State<LoginPage> {
                                     width: double.infinity,
                                     margin: EdgeInsets.only(top: 40, bottom: 20),
                                     padding: EdgeInsets.symmetric(vertical: 16),
-                                    child: !loading ? Text('buttonLogin'.tr(), style: TextStyle(color: Colors.white, fontSize: 17), textAlign: TextAlign.center):Center(
-                                      child: SizedBox(
-                                        width: 22, height: 22, child: CircularProgressIndicator(color: Colors.white),
-                                      ),
-                                    ),
                                     decoration: BoxDecoration(
                                         color: primaryColor.withValues(alpha: 0.50),
                                         border: Border.all(color: Colors.white),
                                         borderRadius: BorderRadius.all(Radius.circular(12))
                                     ),
+                                    child: !loading ? Text('buttonLogin'.tr(), style: TextStyle(color: Colors.white, fontSize: 17), textAlign: TextAlign.center):Center(
+                                      child: SizedBox(
+                                        width: 22, height: 22, child: CircularProgressIndicator(color: Colors.white),
+                                      ),
+                                    ),
                                   ),
                                   onTap: ()=>loginAction(),
                                 ),
@@ -154,19 +170,6 @@ class _LoginPageState extends State<LoginPage> {
               ),
             ),
           ),
-          Container(
-            padding: EdgeInsets.only(top: 42, left: 16),
-            height: 90,
-            child: Row(
-              crossAxisAlignment: CrossAxisAlignment.center,
-              mainAxisAlignment: MainAxisAlignment.spaceBetween,
-              // padding: EdgeInsets.symmetric(horizontal: 16),
-              children: [
-                backButton(),
-                langWdgt()
-              ],
-            ),
-          )
         ],
       ),
     );
@@ -324,6 +327,26 @@ class _LoginPageState extends State<LoginPage> {
   }
 }
 
+var lg = {
+  "ja": {
+    "text": 'japanese'
+  }, "zh": {
+    "text": 'chinese'
+  }, "ko": {
+    "text": 'korean'
+  }, "ar": {
+    "text": 'arabic'
+  }, "fr": {
+    "text": 'france'
+  }, "de": {
+    "text": 'german'
+  }, "nl": {
+    "text": 'dutch'
+  }, "hi": {
+    "text": 'hindi'
+  }
+};
+
 changeLangLogin(BuildContext context, List lang){
   showModalBottomSheet(
     context: context,
@@ -360,30 +383,30 @@ changeLangLogin(BuildContext context, List lang){
                     context.setLocale(Locale('en'));
                   } : null,
                 ),
-                lang.contains('ja') ? ListTile(
-                  title: Text('japanese'.tr(), style: TextStyle(color: textColor, fontSize: 14)),
-                  trailing: Icon(context.locale.toString()=='ja'?Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
-                  onTap: context.locale.toString() != 'ja' ? () async {
+                lang.length - 1 > 1 ? ListTile(
+                  title: Text(lg[lang[2]]!['text'].toString().tr(), style: TextStyle(color: textColor, fontSize: 14)),
+                  trailing: Icon(context.locale.toString()==lang[2] ? Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
+                  onTap: context.locale.toString() != lang[2] ? () async {
                     Navigator.of(context).pop();
-                    context.setLocale(Locale('ja'));
+                    context.setLocale(Locale(lang[2]));
                   } : null,
-                ) : Container(),
-                lang.contains('zh') ? ListTile(
-                  title: Text('chinese'.tr(), style: TextStyle(color: textColor, fontSize: 14)),
-                  trailing: Icon(context.locale.toString()=='zh'?Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
-                  onTap: context.locale.toString() != 'zh' ? () async {
+                ) : SizedBox(),
+                lang.length - 1 > 2 ? ListTile(
+                  title: Text(lg[lang[3]]!['text'].toString().tr(), style: TextStyle(color: textColor, fontSize: 14)),
+                  trailing: Icon(context.locale.toString()==lang[3] ? Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
+                  onTap: context.locale.toString() != lang[3] ? () async {
                     Navigator.of(context).pop();
-                    context.setLocale(Locale('zh'));
+                    context.setLocale(Locale(lang[3]));
                   } : null,
-                ) : Container(),
-                lang.contains('ko') ? ListTile(
-                  title: Text('korean'.tr(), style: TextStyle(color: textColor, fontSize: 14)),
-                  trailing: Icon(context.locale.toString()=='ko'?Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
-                  onTap: context.locale.toString() != 'ko' ? () async {
+                ) : SizedBox(),
+                lang.length - 1 > 3 ? ListTile(
+                  title: Text(lg[lang[4]]!['text'].toString().tr(), style: TextStyle(color: textColor, fontSize: 14)),
+                  trailing: Icon(context.locale.toString()==lang[4] ? Icons.radio_button_checked:Icons.radio_button_off, color: primaryColor, size: 18),
+                  onTap: context.locale.toString() != lang[4] ? () async {
                     Navigator.of(context).pop();
-                    context.setLocale(Locale('ko'));
+                    context.setLocale(Locale(lang[4]));
                   } : null,
-                ) : Container()
+                ) : SizedBox(),
               ],
             ),
             SizedBox(height: 16)

+ 5 - 1
lib/src/layouts/auth/qr.dart

@@ -38,6 +38,7 @@ class _NewQrPageState extends State<NewQrPage> {
   String imageUrl = '';
   List lang = [];
   bool useAsset = false;
+  int sv = 0;
 
   @override
   void initState() {
@@ -60,7 +61,10 @@ class _NewQrPageState extends State<NewQrPage> {
         setState(() {
           companyName = lics['companyName']??'';
           serialNumber = lics['serialNumber']??'';
-          if(1698720817 <= lics['serverVersion']){
+          sv = lics['serverVersion'];
+          if(1754624839 <= sv){
+            lang = lics['_validlang'] ?? [];
+          } else if(1698720817 <= lics['serverVersion']){
             lang = lics['languages'] != null ? lics['languages'].split(',') : [];
           }
         });

+ 0 - 1
lib/src/layouts/mobile/app_mobile.dart

@@ -13,7 +13,6 @@ import 'package:telnow_mobile_new/src/injector/injector.dart';
 import 'package:telnow_mobile_new/src/layouts/components/template.dart';
 import 'package:telnow_mobile_new/src/storage/sharedpreferences/shared_preferences_manager.dart';
 import 'package:telnow_mobile_new/src/utils/U.dart';
-import 'package:upgrader/upgrader.dart';
 
 class MobAppPage extends StatefulWidget {
   final Widget child;

+ 2 - 1
lib/src/utils/U.dart

@@ -466,7 +466,8 @@ class U {
       'assets/iconsax/${name}.svg',
       colorFilter: ColorFilter.mode(color, BlendMode.srcIn),
       width: size, height: size,
-      fit: BoxFit.scaleDown
+      fit: BoxFit.scaleDown,
+      matchTextDirection: true,
     );
   }