diff --git a/aleksis/core/assets/messages.json b/aleksis/core/assets/messages.json deleted file mode 100644 index 5bfa70fb7e8b180fc08179930e7f53733b94bf72..0000000000000000000000000000000000000000 --- a/aleksis/core/assets/messages.json +++ /dev/null @@ -1,250 +0,0 @@ -{ - "de": { - "about": { - "about_aleksis": "Über AlekSIS®", - "about_aleksis_1": "Diese Plattform wird mit AlekSIS®, einem webbasierten Schulinformationssystem (SIS), welches für die Verwaltung und/oder Veröffentlichung von Bildungseinrichtungen verwendet werden kann. AlekSIS ist freie Software und kann von jedem benutzt werden.", - "about_aleksis_2": " AlekSIS® ist eine eingetragene Wortmarke des Open-Source-Projektes AlekSIS, vertreten durch den Teckids e.V.", - "free_open_source_licence": "Freie/Open Source Lizenz", - "free_software": "Freie Software", - "full_licence_text": "Kompletter Lizenztext", - "licence_consists_of": "Die Lizenz besteht aus", - "licence_information": "Lizenzinformationen", - "licence_information_1": " Der Core und die offiziellen Apps von AlekSIS sind unter der EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der jeweiligen App weiter unten auf dieser Seite. Die Lizenzen sind wie folgt markiert:", - "licence_type": "Lizenztyp", - "licenced_under": "Lizensiert unter", - "more_information_eupl": "Weitere Informationen über die EUPL", - "open_source": "Open Source", - "other_licence": "Andere Lizenz", - "proprietary": "Proprietär", - "source_code": "Quellcode", - "website_of_aleksis": "Website von AlekSIS" - }, - "actions": { - "back": "Zurück", - "search": "Suchen" - }, - "alerts": { - "page_cached": "Diese Seite enthält vielleicht veraltete Informationen, da es keine Internetverbindung gibt." - }, - "base": { - "about_aleksis": "Über AlekSIS® — The Free School Information System", - "imprint": "Impressum", - "person_is_dummy": "Ihr Administratorenkonto ist mit keiner Person verknüpft. Deshalb wurde Ihr Konto mit einer Dummyperson verknüpft.", - "privacy_policy": "Datenschutzerklärung", - "user_not_linked_to_person": "Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das bedeutet, dass Sie keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie sich an die Verwaltenden von AlekSIS an Ihrer Schule." - }, - "celery_progress": { - "error_message": "Der Vorgang konnte nicht erfolgreich beendet werden.", - "progress_title": "Wird geladen ...", - "running_tasks": "1 laufende Aufgabe | {number} laufende Aufgaben", - "success_message": "Der Vorgang wurde erfolgreich beendet." - }, - "notifications": { - "mark_as_read": "Als gelesen markieren", - "more_information": "Mehr Informationen", - "no_notifications": "Sie haben keine neuen Benachrichtigungen.", - "notifications": "Benachrichtigungen" - }, - "person": { - "avatar": "Avatar", - "logged_in_as": "Angemeldet als", - "additional_image": "Weiteres Bild", - "no_additional_image": "Diese Person hat kein weiteres Bild hochgeladen", - "impersonation": { - "impersonate": "Verkleiden", - "stop": "Verkleidung beenden", - "impersonating": "Verkleidet als" - } - }, - "network_errors": { - "error_404": "404", - "page_not_found": "Die aufgerufene Seite oder Ressource konnte nicht gefunden werden.", - "take_me_back": "Zurück zur Seite" - } - }, - "en": { - "about": { - "about_aleksis": "About AlekSIS®", - "about_aleksis_1": "This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and can be used by anyone.", - "about_aleksis_2": "AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.", - "free_open_source_licence": "Free/Open Source Licence", - "free_software": "Free Software", - "full_licence_text": "Full Licence Text", - "licence_consists_of": "The licence consists of", - "licence_information": "Licence Information", - "licence_information_1": "The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence information from third-party apps, if installed, refer to the respective components below. The licences are marked like this:", - "licence_type": "Licence Type", - "licenced_under": "Licenced under", - "more_information_eupl": "More information about the EUPL", - "open_source": "Open Source", - "other_licence": "Other Licence", - "proprietary": "Proprietary", - "source_code": "Source Code", - "website_of_aleksis": "Website of AlekSIS" - }, - "accounts": { - "change_password": { - "menu_title": "Change Password" - }, - "invitation": { - "accept_invitation": { - "menu_title": "Accept Invitation" - }, - "invite_person": { - "menu_title": "Invite Person" - } - }, - "login": { - "menu_title": "Login" - }, - "logout": { - "menu_title": "Logout" - }, - "signup": { - "menu_title": "Sign Up" - }, - "social_connections": { - "menu_title": "Third-party Accounts" - }, - "two_factor": { - "menu_title": "2FA" - } - }, - "actions": { - "back": "Back", - "search": "Search", - "edit": "Edit" - }, - "administration": { - "backend_admin": { - "menu_title": "Backend Admin" - }, - "menu_title": "Administration", - "system_status": { - "menu_title": "System Status" - } - }, - "alerts": { - "page_cached": "This page may contain outdated information since there is no internet connection." - }, - "announcement": { - "menu_title": "Announcements", - "title": "Announcement", - "title_plural": "Announcements" - }, - "base": { - "about_aleksis": "About AlekSIS® — The Free School Information System", - "imprint": "Imprint", - "person_is_dummy": "Your administrator account is not linked to any person. Therefore, a dummy person has been linked to your account.", - "privacy_policy": "Privacy Policy", - "user_not_linked_to_person": "Your user account is not linked to a person. This means you cannot access any school-related information. Please contact the managers of AlekSIS at your school.", - "no_permission": "You have no permission to view this page. Please login with an other account." - }, - "celery_progress": { - "error_message": "The operation couldn't be finished successfully.", - "progress_title": "Loading ...", - "running_tasks": "1 running task | {number} running tasks", - "success_message": "The operation has been finished successfully." - }, - "dashboard": { - "dashboard_widget": { - "menu_title": "Dashboard Widgets", - "title": "Dashboard Widget", - "title_plural": "Dashboard Widgets" - }, - "menu_title": "Dashboard" - }, - "data_check": { - "menu_title": "Data Checks" - }, - "group": { - "additional_field": { - "menu_title": "Additional Fields", - "title": "Additional Field", - "title_plural": "Additional Fields" - }, - "group_type": { - "menu_title": "Group Types", - "title": "Group Type", - "title_plural": "Group Types" - }, - "groups_and_child_groups": "Groups and Child Groups", - "menu_title": "Groups", - "title": "Group", - "title_plural": "Groups", - "ownership": "Group ownership" - }, - "ical_feed": { - "menu_title": "Calendar Feeds" - }, - "notifications": { - "mark_as_read": "Mark as read", - "more_information": "More information", - "no_notifications": "You have no new notifications.", - "notifications": "Notifications" - }, - "oauth": { - "application": { - "menu_title": "OAuth Applications", - "title": "OAuth Application", - "title_plural": "OAuth Applications" - }, - "authorized_token": { - "menu_title": "Authorized Applications" - } - }, - "people": "People", - "permissions": { - "manage": { - "menu_title": "Manage Permissions" - } - }, - "person": { - "account_menu_title": "Account", - "avatar": "Avatar", - "additional_image": "Additional Image", - "no_additional_image": "The person didn't upload an additional Image", - "logged_in_as": "Logged in as", - "menu_title": "Persons", - "title": "Person", - "title_plural": "Persons", - "mobile": "mobile phone", - "home": "home phone", - "details": "Contact details", - "children": "Children", - "guardians": "Guardians / Parents", - "no_persons": "No Persons", - "delete": "Delete", - "impersonation": { - "impersonate": "Impersonate", - "stop": "Stop Impersonation", - "impersonating": "Impersonating" - }, - "invite": "Invite" - }, - "preferences": { - "person": { - "menu_title": "Preferences", - "change_preferences": "Preferences" - }, - "site": { - "menu_title": "Configuration" - } - }, - "school_term": { - "menu_title": "School Terms", - "title": "School Term", - "title_plural": "School Terms" - }, - "network_errors": { - "error_404": "404", - "page_not_found": "The requested page or resource could not be found.", - "take_me_back": "Take me back" - }, - "service_worker": { - "new_version_available": "A new version of the app is available", - "update": "Update", - "dismiss": "Dismiss" - } - } -} diff --git a/aleksis/core/assets/messages/de.json b/aleksis/core/assets/messages/de.json new file mode 100644 index 0000000000000000000000000000000000000000..66980a311939d8b0f9b12039ba2fbf5083df6963 --- /dev/null +++ b/aleksis/core/assets/messages/de.json @@ -0,0 +1,63 @@ +{ + "about": { + "about_aleksis": "Über AlekSIS®", + "about_aleksis_1": "Diese Plattform wird mit AlekSIS®, einem webbasierten Schulinformationssystem (SIS), welches für die Verwaltung und/oder Veröffentlichung von Bildungseinrichtungen verwendet werden kann. AlekSIS ist freie Software und kann von jedem benutzt werden.", + "about_aleksis_2": " AlekSIS® ist eine eingetragene Wortmarke des Open-Source-Projektes AlekSIS, vertreten durch den Teckids e.V.", + "free_open_source_licence": "Freie/Open Source Lizenz", + "free_software": "Freie Software", + "full_licence_text": "Kompletter Lizenztext", + "licence_consists_of": "Die Lizenz besteht aus", + "licence_information": "Lizenzinformationen", + "licence_information_1": " Der Core und die offiziellen Apps von AlekSIS sind unter der EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der jeweiligen App weiter unten auf dieser Seite. Die Lizenzen sind wie folgt markiert:", + "licence_type": "Lizenztyp", + "licenced_under": "Lizensiert unter", + "more_information_eupl": "Weitere Informationen über die EUPL", + "open_source": "Open Source", + "other_licence": "Andere Lizenz", + "proprietary": "Proprietär", + "source_code": "Quellcode", + "website_of_aleksis": "Website von AlekSIS" + }, + "actions": { + "back": "Zurück", + "search": "Suchen" + }, + "alerts": { + "page_cached": "Diese Seite enthält vielleicht veraltete Informationen, da es keine Internetverbindung gibt." + }, + "base": { + "about_aleksis": "Über AlekSIS® — The Free School Information System", + "imprint": "Impressum", + "person_is_dummy": "Ihr Administratorenkonto ist mit keiner Person verknüpft. Deshalb wurde Ihr Konto mit einer Dummyperson verknüpft.", + "privacy_policy": "Datenschutzerklärung", + "user_not_linked_to_person": "Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das bedeutet, dass Sie keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie sich an die Verwaltenden von AlekSIS an Ihrer Schule." + }, + "celery_progress": { + "error_message": "Der Vorgang konnte nicht erfolgreich beendet werden.", + "progress_title": "Wird geladen ...", + "running_tasks": "1 laufende Aufgabe | {number} laufende Aufgaben", + "success_message": "Der Vorgang wurde erfolgreich beendet." + }, + "notifications": { + "mark_as_read": "Als gelesen markieren", + "more_information": "Mehr Informationen", + "no_notifications": "Sie haben keine neuen Benachrichtigungen.", + "notifications": "Benachrichtigungen" + }, + "person": { + "avatar": "Avatar", + "logged_in_as": "Angemeldet als", + "additional_image": "Weiteres Bild", + "no_additional_image": "Diese Person hat kein weiteres Bild hochgeladen", + "impersonation": { + "impersonate": "Verkleiden", + "stop": "Verkleidung beenden", + "impersonating": "Verkleidet als" + } + }, + "network_errors": { + "error_404": "404", + "page_not_found": "Die aufgerufene Seite oder Ressource konnte nicht gefunden werden.", + "take_me_back": "Zurück zur Seite" + } +} diff --git a/aleksis/core/assets/messages/en.json b/aleksis/core/assets/messages/en.json new file mode 100644 index 0000000000000000000000000000000000000000..4ffb45dd77b3cf2e42a97388bc502f25137c191c --- /dev/null +++ b/aleksis/core/assets/messages/en.json @@ -0,0 +1,185 @@ +{ + "about": { + "about_aleksis": "About AlekSIS®", + "about_aleksis_1": "This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and can be used by anyone.", + "about_aleksis_2": "AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.", + "free_open_source_licence": "Free/Open Source Licence", + "free_software": "Free Software", + "full_licence_text": "Full Licence Text", + "licence_consists_of": "The licence consists of", + "licence_information": "Licence Information", + "licence_information_1": "The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence information from third-party apps, if installed, refer to the respective components below. The licences are marked like this:", + "licence_type": "Licence Type", + "licenced_under": "Licenced under", + "more_information_eupl": "More information about the EUPL", + "open_source": "Open Source", + "other_licence": "Other Licence", + "proprietary": "Proprietary", + "source_code": "Source Code", + "website_of_aleksis": "Website of AlekSIS" + }, + "accounts": { + "change_password": { + "menu_title": "Change Password" + }, + "invitation": { + "accept_invitation": { + "menu_title": "Accept Invitation" + }, + "invite_person": { + "menu_title": "Invite Person" + } + }, + "login": { + "menu_title": "Login" + }, + "logout": { + "menu_title": "Logout" + }, + "signup": { + "menu_title": "Sign Up" + }, + "social_connections": { + "menu_title": "Third-party Accounts" + }, + "two_factor": { + "menu_title": "2FA" + } + }, + "actions": { + "back": "Back", + "search": "Search", + "edit": "Edit" + }, + "administration": { + "backend_admin": { + "menu_title": "Backend Admin" + }, + "menu_title": "Administration", + "system_status": { + "menu_title": "System Status" + } + }, + "alerts": { + "page_cached": "This page may contain outdated information since there is no internet connection." + }, + "announcement": { + "menu_title": "Announcements", + "title": "Announcement", + "title_plural": "Announcements" + }, + "base": { + "about_aleksis": "About AlekSIS® — The Free School Information System", + "imprint": "Imprint", + "person_is_dummy": "Your administrator account is not linked to any person. Therefore, a dummy person has been linked to your account.", + "privacy_policy": "Privacy Policy", + "user_not_linked_to_person": "Your user account is not linked to a person. This means you cannot access any school-related information. Please contact the managers of AlekSIS at your school.", + "no_permission": "You have no permission to view this page. Please login with an other account." + }, + "celery_progress": { + "error_message": "The operation couldn't be finished successfully.", + "progress_title": "Loading ...", + "running_tasks": "1 running task | {number} running tasks", + "success_message": "The operation has been finished successfully." + }, + "dashboard": { + "dashboard_widget": { + "menu_title": "Dashboard Widgets", + "title": "Dashboard Widget", + "title_plural": "Dashboard Widgets" + }, + "menu_title": "Dashboard" + }, + "data_check": { + "menu_title": "Data Checks" + }, + "group": { + "additional_field": { + "menu_title": "Additional Fields", + "title": "Additional Field", + "title_plural": "Additional Fields" + }, + "group_type": { + "menu_title": "Group Types", + "title": "Group Type", + "title_plural": "Group Types" + }, + "groups_and_child_groups": "Groups and Child Groups", + "menu_title": "Groups", + "title": "Group", + "title_plural": "Groups", + "ownership": "Group ownership" + }, + "ical_feed": { + "menu_title": "Calendar Feeds" + }, + "notifications": { + "mark_as_read": "Mark as read", + "more_information": "More information", + "no_notifications": "You have no new notifications.", + "notifications": "Notifications" + }, + "oauth": { + "application": { + "menu_title": "OAuth Applications", + "title": "OAuth Application", + "title_plural": "OAuth Applications" + }, + "authorized_token": { + "menu_title": "Authorized Applications" + } + }, + "people": "People", + "permissions": { + "manage": { + "menu_title": "Manage Permissions" + } + }, + "person": { + "account_menu_title": "Account", + "avatar": "Avatar", + "additional_image": "Additional Image", + "no_additional_image": "The person didn't upload an additional Image", + "logged_in_as": "Logged in as", + "menu_title": "Persons", + "title": "Person", + "title_plural": "Persons", + "mobile": "mobile phone", + "home": "home phone", + "details": "Contact details", + "children": "Children", + "guardians": "Guardians / Parents", + "no_persons": "No Persons", + "delete": "Delete", + "impersonation": { + "impersonate": "Impersonate", + "stop": "Stop Impersonation", + "impersonating": "Impersonating" + }, + "invite": "Invite" + }, + "preferences": { + "person": { + "menu_title": "Preferences", + "change_preferences": "Preferences" + }, + "site": { + "menu_title": "Configuration" + } + }, + "school_term": { + "menu_title": "School Terms", + "title": "School Term", + "title_plural": "School Terms" + }, + "network_errors": { + "error_404": "404", + "page_not_found": "The requested page or resource could not be found.", + "take_me_back": "Take me back" + }, + "service_worker": { + "new_version_available": "A new version of the app is available", + "update": "Update", + "dismiss": "Dismiss" + } +} diff --git a/aleksis/core/vite.config.js b/aleksis/core/vite.config.js index a515053c9427c94176527b5c01a34b54ac03f643..bb332b3d8e728201ac9a936cd86c813ff7aeeb54 100644 --- a/aleksis/core/vite.config.js +++ b/aleksis/core/vite.config.js @@ -23,9 +23,15 @@ function generateAppImporter(appDetails) { code += `import ${importAppName} from '${indexPath}';\n`; code += `appObjects["${appMeta.name}"] = ${importAppName};\n`; if appMeta.hasMessages { - let messagesPath = appMeta.assetDir + "/messages.json"; - code += `import ${importAppName}Messages from '${messagesPath}';\n`; - code += `appMessages["${appMeta.name}"] = ${importAppName}Messages;\n`; + let messagesPath = appMeta.assetDir + "/messages/"; + code += `appMessages["${appMeta.name}"] = {}`; + fs.readdir(messagesPath, (err, files) => { + files.forEach(file => { + let lang = file.split(".")[0]; + code += `import ${importAppName}Messages_${lang} from '${file}';\n`; + code += `appMessages["${appMeta.name}"]["${lang}"] = ${importAppName}Messages_${lang};\n`; + }); + }); } } code += "export default appObjects;\n";