ONO::FW::Apps::Core::LangKit

package ONO::FW::Apps::Core::LangKit;
################################################################################
# COPYRIGHT / LICENSE #
################################################################################
#
# This file is part of the ONO Software Project.
#
# Copyright (C) 2000-2025 Jos KIRPS [ www.kirps.com | jos_AT_kirps_DOT_com ]
# and The Joopita Project [ www.joopita.org | contact_AT_joopita_DOT_com ]
#
# This file, as well as other parts of the ONO Software Project or related
# elements, are FREE SOFTWARE available under the ARTISTIC LICENSE 2.0.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# For the full license, see /ono/osr/license/LICENSE.txt, or write to
# jos_AT_kirps_DOT_com or contact_AT_joopita_DOT_com.
#
################################################################################
# END OF COPYRIGHT / LICENSE, HERE COMES THE CODE ... #
################################################################################

use strict;

###################################################################
#
###################################################################

#: This module contains language kits for ONO apps.

sub conf_box {

#: Default configuration box language kit.

my @txts = (
"load exercise",
"save as exercise",
"my own exercises",
"You're not logged in",
"You need to be logged in if you wish to store exercises.",
"Please login or create a user account first.",

"Your settings have been saved as exercise",
"return to app",
"my exercises",
"questions",
"black & white (no colors)",

"different copies",
"number of questions",
"multiple questions per page",
"allow hints or help",
"separate sheets (exercise & corrections)",

"send results to my e-mail address",
"Are you ready?",
"send results to all classroom teachers",
"You have chosen the option to store or to save an exercise.",
"Note that you may also generate exercises that can be downloaded or executed online without logging in.",

"login required to run the exercise",
"regroup & number items"
);

if ($_[1] eq "de") {
@txts = (
"Übung laden",
"als Übung speichern",
"meine eigenen Aufgaben",
"Du bist nicht eingeloggt",
"Du musst angemeldet sein, um Aufgaben speichern zu können.",
"Bitte logge dich ein oder erstelle ein Benutzerkonto.",

"Deine Einstellungen wurden als Aufgabe gespeichert",
"Rückkehr zur App",
"meine Aufgaben",
"Fragen",
"schwarz/weiß (keine Farben)",

"unterschiedliche Kopien",
"Anzahl von Fragen",
"mehrere Fragen pro Seite",
"Hinweise / Hilfe erlauben",
"Blätter trennen (Aufgabe & Verbesserung)",

"Ergebnisse an meine E-Mail-Adresse senden",
"Bist du bereit?",
"Ergebnisse an alle Klassenlehrer senden",
"Du hast die Option zum Speichern einer Übung ausgewählt.",
"Beachte bitte, dass du auch Übungen erstellen kannst, die ohne Login heruntergeladen oder online ausgeführt werden können.",

"Login erforderlich, um die Übung auszuführen",
"Aufgaben gruppieren & nummerieren",
)
}

if ($_[1] eq "lu") {
@txts = (
"Exercice lueden",
"als Exercice späicheren",
"meng eegen Exercicer",
"Du bass net ageloggt",
"Du muss ugemellt sinn, fir Aufgabe späicheren ze kënnen.",
"Log dech w.e.g. an oder maach e Benotzerkonto op.",

"Deng Astellunge goufen als Exercice gespäichert",
"Zréck zur App",
"meng Exercicer",
"Froen",
"schwaarz/wäiss (keng Faarwen)",

"ënnerschiddlech Kopien",
"Unzuel Froen",
"méi Froe pro Säit",
"Hiweiser / Hëllef erlaben",
"Blieder trennen (Aufgab & Verbesserungen)",

"Resultater op meng E-mail Adress schécken",
"Bass de prett?",
"Resultater un all Enseignante vun der Klass schécken",
"Du hues d'Optioun gewielt fir eng Übung ze späicheren.",
"Denk drun, dass du och Übunge generéiere kanns déi erofgelueden oder online gemaach kënne ginn ouni dass een ageloggt ass.",

"Login erfuerderlech fir den Exercice ze starten",
"Aufgabe groupéieren & nummeréieren",
)
}

if ($_[1] eq "fr") {
@txts = (
"charger exercice",
"enregistrer comme exercice",
"mes propres exercices",
"Vous n'êtes pas connecté",
"Vous devez être connecté pour pouvoir enregistrerles paramètres de l'exercice.",
"Veuillez vous connecter ou créer un compte utilisateur en premier.",

"Vos paramètres ont été enregistrés en tant qu'exercice",
"retour à l'app",
"mes exercices",
"questions",
"noir & blanc (pas de couleurs)",

"copies différentes",
"nombre de questions",
"plusieures quesions par page",
"permettre de l'aide",
"séparer fiches (exercices & corrections)",

"envoyer les résultats à mon adresse e-mail",
"T'es prêt?",
"envoyer les résultats à tous les enseignants de la classe",
"Vous avez choisi l'option de stocker ou d'enregistrer un exercice.",
"Notez que vous pouvez également générer des exercices qui peuvent être téléchargés ou exécutés en ligne sans vous connecter.",

"connexion requise pour exécuter l'exercice",
"grouper & numérer exercices",
)
}

return @txts;

}

sub conf_box_2 {

#: Additional configuration box language kit.

my @txt = (
"Saved exercise",
"We found an exercise that is already in progress",
"Would you like to continue this exercise, or would you like to start a new one?",
"resume the saved exercise",
"keep for later",
"delete now",
);

if ($_[1] eq "de") {
@txt = (
"Gespeicherte Übung",
"Wir haben eine Übung gefunden, die bereits läuft",
"Möchtest du diese Übung fortsetzen, oder eine neue beginnen?",
"gespeicherte Übung fortsetzen",
"für später aufbewahren",
"jetzt löschen",
);
}

if ($_[1] eq "lu") {
@txt = (
"Gespäicherten Exercice",
"Mir hunn en Exercice fonnt, déi scho leeft",
"Wëlls du dësen Exercice weidermaachen, oder wëlls du e neien ufänken?",
"weider mam Exercice",
"fir spéider halen",
"elo läschen",
);
}

if ($_[1] eq "fr") {
@txt = (
"Exercice enregistré",
"Nous avons trouvé un exercice qui est déjà en cours",
"Voulez-vous continuer l'exercice existant, ou souhaitez-vous en commencer un nouveau?",
"continuer l'exercice sauvegardé",
"conserver pour plus tard",
"supprimer maintenant",
);
}

return @txt;

}

sub question_progress_done_msg {

#: Exercise finished language kit.

my @txts = (
"Congratulations",
"You have successfully completed this exercise.",
"Number of questions",
"Mistakes",
"view my exercise log",
"Your results have been sent to the creator of this exercise.",

"Exercise ###_EXER_### has been completed by ###_USER_###",
"Your results will be sent to all of your classroom teachers.",
"print certificate & results",
"Certificate",
"publish and share my result",

"Write your personal statement here",
"I have successfully completed this exercise!",
"Your results have been shared on your microblog!",
"your results have been saved to your exercise log.",
"You are not logged in.",

"Results can be stored in your exercise log and you may also share them when you're logged in.",
);

if ($_[1] eq "de") {
@txts = (
"Geschafft",
"Du hast diese Aufgabe erfolgreich abgeschlossen.",
"Anzahl der Fragen",
"Fehler",
"mein Aufgaben-Logbuch anzeigen",
"Deine Ergebnisse wurden an den Ersteller dieser Übung gesendet.",

"Übung ###_EXER_### wurde von ###_USER_### abgeschlossen",
"Deine Ergebnisse werden an alle LehrerInnen deiner Klasse gesendet.",
"Zertifikat & Resultate drucken",
"Zertifikat",
"mein Resultat veröffentlichen und teilen",

"Schreibe hier deinen persönlichen Kommentar",
"Ich habe diese Übung erfolgreich abgeschlossen!",
"Deine Ergebnisse wurden in deinem Microblog geteilt!",
"deine Ergebnisse wurden in deinem Übungs-Log gespeichert!",
"Du bist nicht eingeloggt.",

"Ergebnisse können in deinem Übungs-Log gespeichert werden und du kannst sie auch teilen, wenn du eingeloggt bist.",
);
}

if ($_[1] eq "lu") {
@txts = (
"Gepackt",
"Du hues dës Aufgab erfollegräich ofgeschloss.",
"Unzuel vu Froen",
"Feeler",
"mäin Aufgabe-Logbuch uweisen",
"Deng Resultater sinn un de Créateur vun dëser Übung geschéckt ginn.",

"Übung ###_EXER_### gouf vum ###_USER_### ofgeschloss",
"Deng Resultater ginn un all Enseignante vun denger Klass geschéckt.",
"Zertifikat & Resultater printen",
"Zertifikat",
"mäi Resultat publizéieren an deelen",

"Schreif hei däi perséinleche Kommentar",
"Ech hunn dës Übung erfollegräich ofgeschloss!",
"Deng Resultater goufen an dengem Microblog gedeelt!",
"deng Resultater goufen an dengem Übungs-Log gespäichert!",
"Du bass net ageloggt.",

"Resultater kënnen an dengem Übungs-Log gespäichert ginn an du kanns se och deelen wann s du ageloggt bass.",
);
}

if ($_[1] eq "fr") {
@txts = (
"Félicitations",
"Vous avez terminé cet exercice.",
"Nombre de questions",
"Erreurs",
"afficher mon journal d'exercices",
"Vos résultats ont été envoyés au créateur de cet exercice.",

"Exercice ###_EXER_### a été complété par ###_USER_###",
"Vos résultats seront envoyés à tous les enseignants de votre classe.",
"imprimer certificat & résultats",
"Certificat",
"publier et partager mon résultat",

"Écrivez votre commentaire personnel ici",
"J'ai complété cet exercice avec succès!",
"Vos résultats ont été partagés dans votre microblog!",
"vos résultats ont été enrégistrés dans votre log d'exercices!",
"Vous n'êtes pas connecté.",

"Les résultats peuvent être stockés dans votre log d'exercices et vous pouvez également les partager lorsque vous êtes connecté.",
);
}

return @txts;

}

sub subtitles {

#: Default promo messages.

my $vars_ref = $_[1];
my %vars = %$vars_ref;

my $sub1 = "Learn and teach online";
my $sub2 = "fast, simple and free!";

if ($ENV{'SERVER_NAME'} =~ /oli\.lu/) {

$sub1 = "Online Léieren am Internet";
$sub2 = "Einfach, séier a gratis!";

if ($vars{'app_lang'} eq "en") {
$sub1 = "Online Learning on the Internet",
$sub2 = "fast, simple and free!",
}

if ($vars{'app_lang'} eq "de") {
$sub1 = "Online Lernen im Internet",
$sub2 = "einfach, schnell und kostenlos!",
}

if ($vars{'app_lang'} eq "fr") {
$sub1 = "Apprendre en ligne",
$sub2 = "simple, rapide et gratuit!",
}

} else {

if ($vars{'app_lang'} eq "de") {
$sub1 = "Online lernen und lehren",
$sub2 = "einfach, schnell und kostenlos!",
}

if ($vars{'app_lang'} eq "fr") {
$sub1 = "Apprendre en ligne",
$sub2 = "simple, rapide et gratuit!",
}

}

if ($ENV{'SERVER_NAME'} =~ /morzino/) {
$sub1 = "Books, worksheets, online exercises";
$sub1 = "Books, worksheets";
$sub2 = "and more!";
if ($vars{'app_lang'} eq "de") {
$sub1 = "Bücher, Arbeitsblätter, Online Trainer";
$sub1 = "Bücher, Arbeitsblätter";
$sub2 = "und mehr!";
}
if ($vars{'app_lang'} eq "fr") {
$sub1 = "Livres, fiches de travail, exerciseurs";
$sub1 = "Livres, fiches de travail";
$sub2 = "et plus!";
}
}

return ($sub1,$sub2);

}

sub info {

my (
$self,
$item,
$lang,
) = @_;

my $txt;

#: Default info messages.

# default or EN

if ($item eq "info_print") {
$txt = qq~[b]Print worksheets[/b] (including correction sheets).~;
}
if ($item eq "info_online_print") {
$txt = qq~[b]Practice online[/b] (with instant feedback) or [b]print worksheets[/b] (including correction sheets).~;
}
if ($item eq "info_indiv_diff") {
$txt = qq~[b]Fully individualized[/b] and optimized for [b]differentiated learning[/b].~;
}

# alt: DE

if ($lang eq "de") {
if ($item eq "info_print") {
$txt = qq~[b]Drucke Arbeitsblätter[/b] (inklusive Verbesserungen).~;
}
if ($item eq "info_online_print") {
$txt = qq~[b]Übe selbstständig online[/b] (mit direkter Korrektur) oder [b]drucke Arbeitsblätter[/b] (inklusive Verbesserungen).~;
}
if ($item eq "info_indiv_diff") {
$txt = qq~[b]Vollkommen individualisiert[/b] und optimiert für den [b]differenzierten Unterricht[/b].~;
}
}

# alt: FR

if ($lang eq "fr") {
if ($item eq "info_print") {
$txt = qq~[b]Imprimez des fiches de travail[/b] (y inclus les corrections).~;
}
if ($item eq "info_online_print") {
$txt = qq~[b]Exercez en ligne[/b] (correction instantanée) ou [b]imprimez des fiches de travail[/b] (y inclus les corrections).~;
}
if ($item eq "info_indiv_diff") {
$txt = qq~[b]Complètement individualisé[/b] et optimisé pour [b]d'apprentissage différencié[/b].~;
}
}

# alt: LU

if ($lang eq "lu") {
if ($item eq "info_print") {
$txt = qq~[b]Dréck Aarbechtsblieder[/b] (mat Verbesserungen).~;
}
if ($item eq "info_online_print") {
$txt = qq~[b]Üb selbststänneg online[/b] (mat direkter Korrektur) oder [b]dréck Aarbechtsblieder[/b] (mat Verbesserungen).~;
}
if ($item eq "info_indiv_diff") {
$txt = qq~[b]Komplett individualiséiert[/b] an optiméiert fir den [b]differenzéierten Unterrecht[/b].~;
}
}

return "$txt ";

}

sub login_required {

#: Login required message.

my $txt = "You must be logged in to run this exercise.";
if ($_[1] eq "de") {
$txt = "Du musst angemeldet sein, um diese Übung ausführen zu können.";
}
if ($_[1] eq "lu") {
$txt = "De muss ageloggt sinn fir dësen Exercise starten ze kënnen.";
}
if ($_[1] eq "fr") {
$txt = "Vous devez être connecté pour exécuter cet exercice.";
}

return qq~<div class="lightred italic mb10">$txt</div>~;

}

sub print_design {

#: Print correction message.

my @txt = ("also on correction sheets");
if ($_[1] eq "de") {
@txt = ("auch auf Korrekturen");
}
if ($_[1] eq "lu") {
@txt = ("och op de Verbesserungen");
}
if ($_[1] eq "fr") {
@txt = ("aussi sur les corrections");
}

return @txt;

}

###################################################################
# THAT'S IT :-D
###################################################################

1;

__END__