CLI compile_messages: include core translated messages in JSON catalog

This commit is contained in:
Benjamin Renard 2023-03-07 17:49:37 +01:00
parent 49b59650a1
commit 3bf65aea4d
6 changed files with 455 additions and 394 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,9 +1,9 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: 2023-03-03 10:42+0100\n" "POT-Creation-Date: 2023-03-07 17:49+0100\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n" "Last-Translator: Benjamin Renard <brenard@zionetrix.net>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr_FR\n" "Language: fr_FR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -12,104 +12,6 @@ msgstr ""
"X-Generator: Poedit 2.4.2\n" "X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: Tpl.php:420
msgid "No template specified."
msgstr "Aucun template spécifié."
#: Tpl.php:453
msgid "An error occurred while displaying this page."
msgstr "Une erreur est survenue en affichant cette page."
#: Db.php:74
msgid "Unable to connect to the database."
msgstr "Impossible de se connecter à la base de données."
#: Auth/Form.php:40
msgid "Invalid username or password."
msgstr "Nom d'utilisateur ou mot de passe invalide."
#: Auth/Form.php:72
msgid "Sign in"
msgstr "Connexion"
#: Auth/Http.php:37 Url.php:181
msgid "Authentication required"
msgstr "Authentification requise"
#: Auth/Http.php:124 Auth/Http.php:127 Url.php:185
msgid "Access denied"
msgstr "Accès interdit"
#: Auth/Http.php:128 Auth/Http.php:132
msgid "You must login to access this page."
msgstr "Vous devez vous connecter pour accéder à cette page."
#: Url.php:177
msgid "Bad request"
msgstr "Mauvaise requête"
#: Url.php:178
msgid "Invalid request."
msgstr "Requête invalide."
#: Url.php:182
msgid "You have to be authenticated to access to this page."
msgstr "Vous devez être authentifié pour accéder à cette page."
#: Url.php:186
msgid ""
"You do not have access to this application. If you think this is an error, "
"please contact support."
msgstr ""
"Vous n'avez pas accès à cette application. Si vous pensez qu'il s'agit d'une "
"erreur, merci de prendre contact avec le support."
#: Url.php:189
msgid "Whoops ! Page not found"
msgstr "Oups ! Page introuvable"
#: Url.php:190
msgid "The requested page can not be found."
msgstr "La page demandée est introuvable."
#: Url.php:198
msgid "Error"
msgstr "Erreur"
#: Url.php:199
msgid "An unknown error occurred. If problem persist, please contact support."
msgstr ""
"Une erreur inconnue est survenue. Si le problème persiste, merci de prendre "
"contact avec le support."
#: Url.php:262
msgid ""
"Unable to determine the requested page. If the problem persists, please "
"contact support."
msgstr ""
"Impossible de déterminer la page demandée. Si le problème persiste, merci de "
"prendre contact avec le support."
#: Url.php:416
msgid ""
"Unable to determine the requested page (loop detected). If the problem "
"persists, please contact support."
msgstr ""
"Impossible de déterminer la page demandée (boucle détectée). Si le problème "
"persiste, merci de prendre contact avec le support."
#: Url.php:446
msgid "This request cannot be processed."
msgstr "Cette requête ne peut être traitée."
#: Url.php:456
msgid "Authentication required but fail to authenticate you."
msgstr "Authentification requise mais impossible pour vous authentifier."
#: Url.php:475
msgid "This request could not be processed correctly."
msgstr "Cette requête n'a put être traitée correctement."
#: Cli.php:44 #: Cli.php:44
msgid "Create a new project using EesyPHP framework" msgid "Create a new project using EesyPHP framework"
msgstr "Créer un nouveau projet utilisant le framework EesyPHP" msgstr "Créer un nouveau projet utilisant le framework EesyPHP"
@ -198,7 +100,7 @@ msgstr ""
msgid "An exception occured running command %s" msgid "An exception occured running command %s"
msgstr "Une exception est survenue en exécutant la commande %s" msgstr "Une exception est survenue en exécutant la commande %s"
#: Cli.php:307 #: Cli.php:309
msgid "" msgid ""
"This command only accept one argument: the listen address in format \"host:" "This command only accept one argument: the listen address in format \"host:"
"port\" or \":port\" (= 0.0.0.0:port)." "port\" or \":port\" (= 0.0.0.0:port)."
@ -206,19 +108,19 @@ msgstr ""
"Cette commande n'accepte qu'un seul paramètre : l'adresse d'écoute au format " "Cette commande n'accepte qu'un seul paramètre : l'adresse d'écoute au format "
"\"hôte:port\" ou \":port\" (= 0.0.0.0:port)." "\"hôte:port\" ou \":port\" (= 0.0.0.0:port)."
#: Cli.php:318 #: Cli.php:320
msgid "" msgid ""
"Invalid listen address specify. Must be in formart host:port (or :port)." "Invalid listen address specify. Must be in formart host:port (or :port)."
msgstr "" msgstr ""
"Adresse d'écoute spécifiée invalide. Elle doit être au format hôte:port (ou :" "Adresse d'écoute spécifiée invalide. Elle doit être au format hôte:port (ou :"
"port)." "port)."
#: Cli.php:328 #: Cli.php:330
msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address." msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address."
msgstr "" msgstr ""
"Hôte d'écoute spécifié invalide. Il doit s'agir d'une adresse IPv4 ou IPv6." "Hôte d'écoute spécifié invalide. Il doit s'agir d'une adresse IPv4 ou IPv6."
#: Cli.php:335 #: Cli.php:337
msgid "" msgid ""
"Invalid listen port specified. Must be a positive integer between 1 and " "Invalid listen port specified. Must be a positive integer between 1 and "
"65535." "65535."
@ -226,32 +128,150 @@ msgstr ""
"Port d'écoute spécifié invalide. Il doit s'agir d'un entier positif entre 1 " "Port d'écoute spécifié invalide. Il doit s'agir d'un entier positif entre 1 "
"et 65535." "et 65535."
#: Cli.php:365 #: Cli.php:367
msgid "Can't invoke bash. Can't ask password prompt." msgid "Can't invoke bash. Can't ask password prompt."
msgstr "" msgstr ""
"Impossible d'utiliser bash. Impossible de demander à l'utilisateur de saisir " "Impossible d'utiliser bash. Impossible de demander à l'utilisateur de saisir "
"un mot de passe." "un mot de passe."
#: Cli.php:368 #: Cli.php:370
msgid "Please enter password:" msgid "Please enter password:"
msgstr "Merci de saisir le mot de passe :" msgstr "Merci de saisir le mot de passe :"
#: App.php:238 I18n.php:118 #: Db.php:74
msgid "Unable to connect to the database."
msgstr "Impossible de se connecter à la base de données."
#: Auth/Form.php:40
msgid "Invalid username or password."
msgstr "Nom d'utilisateur ou mot de passe invalide."
#: Auth/Form.php:72
msgid "Sign in"
msgstr "Connexion"
#: Auth/Http.php:37 Url.php:181
msgid "Authentication required"
msgstr "Authentification requise"
#: Auth/Http.php:124 Auth/Http.php:127 Url.php:185
msgid "Access denied"
msgstr "Accès interdit"
#: Auth/Http.php:128 Auth/Http.php:132
msgid "You must login to access this page."
msgstr "Vous devez vous connecter pour accéder à cette page."
#: Email.php:101
#, php-format
msgid "</hr><p><small>Mail initialy intended for %s.</small></p>"
msgstr "</hr><p><small>Email initialement destiné à %s.</small></p>"
#: Email.php:102
#, php-format
msgid ""
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
msgstr ""
"\n"
"\n"
"\n"
"Mail originalement destiné à %s."
#: Email.php:139
#, php-format
msgid "<p><small>%s: %s</small></p>"
msgstr "<p><small>%s: %s</small></p>"
#: Email.php:140
#, php-format
msgid ""
"\n"
"%s: %s"
msgstr ""
"\n"
"%s: %s"
#: Tpl.php:420
msgid "No template specified."
msgstr "Aucun template spécifié."
#: Tpl.php:453
msgid "An error occurred while displaying this page."
msgstr "Une erreur est survenue en affichant cette page."
#: Url.php:177
msgid "Bad request"
msgstr "Mauvaise requête"
#: Url.php:178
msgid "Invalid request."
msgstr "Requête invalide."
#: Url.php:182
msgid "You have to be authenticated to access to this page."
msgstr "Vous devez être authentifié pour accéder à cette page."
#: Url.php:186
msgid ""
"You do not have access to this application. If you think this is an error, "
"please contact support."
msgstr ""
"Vous n'avez pas accès à cette application. Si vous pensez qu'il s'agit d'une "
"erreur, merci de prendre contact avec le support."
#: Url.php:189
msgid "Whoops ! Page not found"
msgstr "Oups ! Page introuvable"
#: Url.php:190
msgid "The requested page can not be found."
msgstr "La page demandée est introuvable."
#: Url.php:198
msgid "Error"
msgstr "Erreur"
#: Url.php:199
msgid "An unknown error occurred. If problem persist, please contact support."
msgstr ""
"Une erreur inconnue est survenue. Si le problème persiste, merci de prendre "
"contact avec le support."
#: Url.php:262
msgid ""
"Unable to determine the requested page. If the problem persists, please "
"contact support."
msgstr ""
"Impossible de déterminer la page demandée. Si le problème persiste, merci de "
"prendre contact avec le support."
#: Url.php:416
msgid ""
"Unable to determine the requested page (loop detected). If the problem "
"persists, please contact support."
msgstr ""
"Impossible de déterminer la page demandée (boucle détectée). Si le problème "
"persiste, merci de prendre contact avec le support."
#: Url.php:446
msgid "This request cannot be processed."
msgstr "Cette requête ne peut être traitée."
#: Url.php:456
msgid "Authentication required but fail to authenticate you."
msgstr "Authentification requise mais impossible pour vous authentifier."
#: Url.php:475
msgid "This request could not be processed correctly."
msgstr "Cette requête n'a put être traitée correctement."
#: I18n.php:118 App.php:238
msgid "Hello world !" msgid "Hello world !"
msgstr "Bonjour tout le monde !" msgstr "Bonjour tout le monde !"
#: App.php:240
msgid "Hello world!"
msgstr "Salut tout le monde !"
#: App.php:251
msgid "Disconnected"
msgstr "Déconnecté"
#: App.php:253
msgid "You are now disconnected."
msgstr "Vous êtes maintenant déconnecté."
#: I18n.php:138 #: I18n.php:138
msgid "Extract messages that need to be translated" msgid "Extract messages that need to be translated"
msgstr "Extraire les messages devant être traduit" msgstr "Extraire les messages devant être traduit"
@ -292,34 +312,34 @@ msgstr ""
"Cette commande peut-être utilisée pour compiler les fichiers PO dans les " "Cette commande peut-être utilisée pour compiler les fichiers PO dans les "
"dossiers locales/*/LC_MESSAGES and les catalogues JS dans le dossier locales." "dossiers locales/*/LC_MESSAGES and les catalogues JS dans le dossier locales."
#: I18n.php:336 #: I18n.php:356
msgid "Fail to list EesyPHP PHP files." msgid "Fail to list EesyPHP PHP files."
msgstr "Une erreur est survenue en listant les fichiers PHP d'EesyPHP." msgstr "Une erreur est survenue en listant les fichiers PHP d'EesyPHP."
#: I18n.php:356 #: I18n.php:376
msgid "Fail to extract messages from EesyPHP PHP files using xgettext." msgid "Fail to extract messages from EesyPHP PHP files using xgettext."
msgstr "" msgstr ""
"Une erreur est survenue en extrayant les messages depuis les fichiers PHP " "Une erreur est survenue en extrayant les messages depuis les fichiers PHP "
"d'EesyPHP en utilisant xgettext." "d'EesyPHP en utilisant xgettext."
#: I18n.php:373 #: I18n.php:393
msgid "Fail to list application PHP files." msgid "Fail to list application PHP files."
msgstr "Une erreur est survenue en listant les fichiers PHP de l'application." msgstr "Une erreur est survenue en listant les fichiers PHP de l'application."
#: I18n.php:393 #: I18n.php:413
msgid "Fail to extract messages from PHP files using xgettext." msgid "Fail to extract messages from PHP files using xgettext."
msgstr "" msgstr ""
"Impossible d'extraire les messages depuis les fichiers PHP en utilisant " "Impossible d'extraire les messages depuis les fichiers PHP en utilisant "
"xgettext." "xgettext."
#: I18n.php:409 #: I18n.php:429
#, php-format #, php-format
msgid "Fail to list JS files in the directory of static files '%s'." msgid "Fail to list JS files in the directory of static files '%s'."
msgstr "" msgstr ""
"Une erreur est survenue en listant les fichiers JS dans le dossier des " "Une erreur est survenue en listant les fichiers JS dans le dossier des "
"fichiers statiques '%s'." "fichiers statiques '%s'."
#: I18n.php:431 #: I18n.php:451
#, php-format #, php-format
msgid "" msgid ""
"Fail to extract messages from JS files in the directory of static files '%s' " "Fail to extract messages from JS files in the directory of static files '%s' "
@ -328,7 +348,7 @@ msgstr ""
"Une erreur est survenue en extrayant les messages depuis les fichiers JS du " "Une erreur est survenue en extrayant les messages depuis les fichiers JS du "
"dossier des fichiers statiques '%s' en utilisant xgettext." "dossier des fichiers statiques '%s' en utilisant xgettext."
#: I18n.php:453 #: I18n.php:473
#, php-format #, php-format
msgid "" msgid ""
"Fail to extract messages from templates directory '%s' using tsmarty2c.php " "Fail to extract messages from templates directory '%s' using tsmarty2c.php "
@ -337,143 +357,137 @@ msgstr ""
"Impossible d'extraire les messages depuis le dossier de templates '%s' en " "Impossible d'extraire les messages depuis le dossier de templates '%s' en "
"utilisant le script tsmarty2c.php." "utilisant le script tsmarty2c.php."
#: I18n.php:489 #: I18n.php:509
msgid "Fail to merge messages using msgcat." msgid "Fail to merge messages using msgcat."
msgstr "Impossible de fusionner les messages en utilisant msgcat." msgstr "Impossible de fusionner les messages en utilisant msgcat."
#: I18n.php:503 #: I18n.php:523
#, php-format #, php-format
msgid "Compendium file %s not found." msgid "Compendium file %s not found."
msgstr "Fichier compendium %s introuvable." msgstr "Fichier compendium %s introuvable."
#: I18n.php:514 #: I18n.php:534
#, php-format #, php-format
msgid "POT file not found (%s). Please run extract_messages first." msgid "POT file not found (%s). Please run extract_messages first."
msgstr "" msgstr ""
"Fichier POT introuvable (%s). Merci de lancer la commande extract_messages " "Fichier POT introuvable (%s). Merci de lancer la commande extract_messages "
"pour commencer." "pour commencer."
#: I18n.php:526 I18n.php:636 #: I18n.php:546 I18n.php:656
#, php-format #, php-format
msgid "Lang directory '%s' found" msgid "Lang directory '%s' found"
msgstr "Dossier de langue '%s' trouvé" msgstr "Dossier de langue '%s' trouvé"
#: I18n.php:532 I18n.php:642 #: I18n.php:552 I18n.php:662
#, php-format #, php-format
msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it." msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it."
msgstr "" msgstr ""
"Le dossier LC_MESSAGES est introuvable dans le dossier de langue '%s', on " "Le dossier LC_MESSAGES est introuvable dans le dossier de langue '%s', on "
"l'ignore." "l'ignore."
#: I18n.php:547 #: I18n.php:567
#, php-format #, php-format
msgid "Fail to init messages in %s PO file using msginit (%s)." msgid "Fail to init messages in %s PO file using msginit (%s)."
msgstr "" msgstr ""
"Impossible d'initialiser les messages dans le fichier PO %s en utilisant " "Impossible d'initialiser les messages dans le fichier PO %s en utilisant "
"msginit (%s)." "msginit (%s)."
#: I18n.php:565 #: I18n.php:585
#, php-format #, php-format
msgid "Fail to update messages in %s PO file using msgmerge (%s)." msgid "Fail to update messages in %s PO file using msgmerge (%s)."
msgstr "" msgstr ""
"Impossible de mettre à jour les messages dans les fichiers PO %s en " "Impossible de mettre à jour les messages dans les fichiers PO %s en "
"utilisant msgmerge (%s)." "utilisant msgmerge (%s)."
#: I18n.php:571 I18n.php:650 #: I18n.php:591 I18n.php:670
#, php-format #, php-format
msgid "PO file not found in lang '%s' directory, ignore it." msgid "PO file not found in lang '%s' directory, ignore it."
msgstr "" msgstr ""
"Le fichier PO est introuvable dans le dossier de langue '%s', on l'ignore." "Le fichier PO est introuvable dans le dossier de langue '%s', on l'ignore."
#: I18n.php:578 I18n.php:690 #: I18n.php:598 I18n.php:725
#, php-format #, php-format
msgid "Fail to open root lang directory (%s)." msgid "Fail to open root lang directory (%s)."
msgstr "Impossible d'ouvrir le dossier racine des langues (%s)." msgstr "Impossible d'ouvrir le dossier racine des langues (%s)."
#: I18n.php:606 #: I18n.php:626
#, php-format #, php-format
msgid "Lang alias symlink found: %s -> %s" msgid "Lang alias symlink found: %s -> %s"
msgstr "Lien symbolique d'alias de langue trouvé : %s -> %s" msgstr "Lien symbolique d'alias de langue trouvé : %s -> %s"
#: I18n.php:613 #: I18n.php:633
#, php-format #, php-format
msgid "JS catalog symlink for %s -> %s created (%s)" msgid "JS catalog symlink for %s -> %s created (%s)"
msgstr "Lien symbolique de catalogue JS pour %s -> %s créé (%s)" msgstr "Lien symbolique de catalogue JS pour %s -> %s créé (%s)"
#: I18n.php:617 #: I18n.php:637
#, php-format #, php-format
msgid "Fail to create JS catalog symlink for %s -> %s (%s)" msgid "Fail to create JS catalog symlink for %s -> %s (%s)"
msgstr "" msgstr ""
"Impossible de créer le lien symbolique de catalogue JS pour %s -> %s (%s)" "Impossible de créer le lien symbolique de catalogue JS pour %s -> %s (%s)"
#: I18n.php:623 #: I18n.php:643
#, php-format #, php-format
msgid "JS catalog symlink for %s -> %s already exist (%s)" msgid "JS catalog symlink for %s -> %s already exist (%s)"
msgstr "Le lien symbolique du catalogue JS pour %s -> %s existe déjà (%s)" msgstr "Le lien symbolique du catalogue JS pour %s -> %s existe déjà (%s)"
#: I18n.php:628 #: I18n.php:648
#, php-format #, php-format
msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)" msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)"
msgstr "" msgstr ""
"Le catalogue JS pour %s existe, mais il ne s'agit par d'un lien symbolique " "Le catalogue JS pour %s existe, mais il ne s'agit par d'un lien symbolique "
"vers %s (%s)" "vers %s (%s)"
#: I18n.php:663 #: I18n.php:683
#, php-format #, php-format
msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)." msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)."
msgstr "" msgstr ""
"Impossible de compiler les messages depuis le fichier PO %s en tant que " "Impossible de compiler les messages depuis le fichier PO %s en tant que "
"fichier MO en utilisant msgfmt (%s)." "fichier MO en utilisant msgfmt (%s)."
#: I18n.php:673 #: I18n.php:695
#, php-format
msgid "Include core translated messages from %s PO file"
msgstr "Inclusion des messages traduits (core) depuis le fichier PO %s"
#: I18n.php:702
#, php-format
msgid ""
"Core PO file %s not found: can not include its translated messages in "
"resulting JSON catalog."
msgstr ""
"Le fichier PO core %s est introuvable : impossible d'inclure ses messages "
"traduits dans le catalogue JSON résultant."
#: I18n.php:708
#, php-format #, php-format
msgid "Fail to open %s JS catalog file in write mode (%s)." msgid "Fail to open %s JS catalog file in write mode (%s)."
msgstr "Impossible d'ouvrir le catalogue JS %s en mode écriture (%s)." msgstr "Impossible d'ouvrir le catalogue JS %s en mode écriture (%s)."
#: I18n.php:678 #: I18n.php:713
#, php-format #, php-format
msgid "Fail to write %s JS catalog in file (%s)." msgid "Fail to write %s JS catalog in file (%s)."
msgstr "Impossible d'écrire le fichier du catalogue JS %s (%s)." msgstr "Impossible d'écrire le fichier du catalogue JS %s (%s)."
#: I18n.php:683 #: I18n.php:718
#, php-format #, php-format
msgid "%s JS catalog writed (%s)." msgid "%s JS catalog writed (%s)."
msgstr "Catalogue JS %s créé (%s)." msgstr "Catalogue JS %s créé (%s)."
#: Email.php:101 #: App.php:240
#, php-format msgid "Hello world!"
msgid "</hr><p><small>Mail initialy intended for %s.</small></p>" msgstr "Salut tout le monde !"
msgstr "</hr><p><small>Email initialement destiné à %s.</small></p>"
#: Email.php:102 #: App.php:251
#, php-format msgid "Disconnected"
msgid "" msgstr "Déconnecté"
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
msgstr ""
"\n"
"\n"
"\n"
"Mail originalement destiné à %s."
#: Email.php:139 #: App.php:253
#, php-format msgid "You are now disconnected."
msgid "<p><small>%s: %s</small></p>" msgstr "Vous êtes maintenant déconnecté."
msgstr "<p><small>%s: %s</small></p>"
#: Email.php:140 #: static/js/myconfirm.js:4 static/js/myconfirm.js:187
#, php-format #: static/js/myconfirm.js:216
msgid ""
"\n"
"%s: %s"
msgstr ""
"\n"
"%s: %s"
#: static/js/myconfirm.js:4 static/js/myconfirm.js:171
#: static/js/myconfirm.js:200
msgid "Confirmation" msgid "Confirmation"
msgstr "Confirmation" msgstr "Confirmation"
@ -481,50 +495,38 @@ msgstr "Confirmation"
msgid "Do you confirm?" msgid "Do you confirm?"
msgstr "Confirmez-vous ?" msgstr "Confirmez-vous ?"
#: static/js/myconfirm.js:11 static/js/myconfirm.js:108 #: static/js/myconfirm.js:18 static/js/myconfirm.js:122
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: static/js/myconfirm.js:17 static/js/myconfirm.js:114 #: static/js/myconfirm.js:24 static/js/myconfirm.js:128
msgid "Validate" msgid "Validate"
msgstr "Valider" msgstr "Valider"
#: static/js/myconfirm.js:52 #: static/js/myconfirm.js:64
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: static/js/myconfirm.js:91 #: static/js/myconfirm.js:103
msgid "Question" msgid "Question"
msgstr "Question" msgstr "Question"
#: static/js/myconfirm.js:92 #: static/js/myconfirm.js:104
msgid "Please enter your answer below:" msgid "Please enter your answer below:"
msgstr "Merci de saisir vos réponses ci-dessous :" msgstr "Merci de saisir vos réponses ci-dessous :"
#: static/js/myconfirm.js:143 #: static/js/myconfirm.js:157
msgid "Please wait" msgid "Please wait"
msgstr "Merci de patienter" msgstr "Merci de patienter"
#: static/js/myconfirm.js:144 #: static/js/myconfirm.js:158
msgid "Please wait while your request is being processed." msgid "Please wait while your request is being processed."
msgstr "Merci de patienter pendant le traitement de votre requête." msgstr "Merci de patienter pendant le traitement de votre requête."
#: static/js/myconfirm.js:172 static/js/myconfirm.js:201 #: static/js/myconfirm.js:188 static/js/myconfirm.js:217
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Êtes-vous sure ?" msgstr "Êtes-vous sure ?"
#: templates/login.tpl:9
msgid "Username"
msgstr "Nom d'utilisateur"
#: templates/login.tpl:13
msgid "Password"
msgstr "Mot de passe"
#: templates/login.tpl:16
msgid "Submit"
msgstr "Envoyer"
#: templates/fatal_error.tpl:3 #: templates/fatal_error.tpl:3
msgid "Oops..." msgid "Oops..."
msgstr "Oups..." msgstr "Oups..."
@ -546,15 +548,11 @@ msgstr "Erreur : %1"
msgid "Back" msgid "Back"
msgstr "Retour" msgstr "Retour"
#: templates/empty.tpl:60 #: templates/homepage.tpl:6
msgid "Sign out"
msgstr "Déconnexion"
#: templates/homepage.tpl:5
msgid "Hello, world!" msgid "Hello, world!"
msgstr "Bonjour tout le monde !" msgstr "Bonjour tout le monde !"
#: templates/homepage.tpl:6 #: templates/homepage.tpl:8
msgid "" msgid ""
"This is the default page of a new app using EesyPHP framework. Register your " "This is the default page of a new app using EesyPHP framework. Register your "
"own templates directory and create a <em>homepage.tpl</em> file to overwrite " "own templates directory and create a <em>homepage.tpl</em> file to overwrite "
@ -566,6 +564,22 @@ msgstr ""
"fichier <em>homepage.tpl</em> pour l'écraser. Vous pouvez également écraser " "fichier <em>homepage.tpl</em> pour l'écraser. Vous pouvez également écraser "
"le gestionnaire de l'URL racine de l'application web." "le gestionnaire de l'URL racine de l'application web."
#: templates/empty.tpl:64
msgid "Sign out"
msgstr "Déconnexion"
#: templates/login.tpl:14 templates/login.tpl:15
msgid "Username"
msgstr "Nom d'utilisateur"
#: templates/login.tpl:19 templates/login.tpl:20
msgid "Password"
msgstr "Mot de passe"
#: templates/login.tpl:24
msgid "Submit"
msgstr "Envoyer"
#~ msgid "Logout" #~ msgid "Logout"
#~ msgstr "Déconnexion" #~ msgstr "Déconnexion"

View file

@ -1,101 +1,11 @@
msgid "" msgid ""
msgstr "" msgstr ""
"POT-Creation-Date: 2023-03-03 10:42+0100\n" "POT-Creation-Date: 2023-03-07 17:49+0100\n"
"PO-Revision-Date: 2023-03-03 10:42+0100\n" "PO-Revision-Date: 2023-03-07 17:49+0100\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: Tpl.php:420
msgid "No template specified."
msgstr ""
#: Tpl.php:453
msgid "An error occurred while displaying this page."
msgstr ""
#: Db.php:74
msgid "Unable to connect to the database."
msgstr ""
#: Auth/Form.php:40
msgid "Invalid username or password."
msgstr ""
#: Auth/Form.php:72
msgid "Sign in"
msgstr ""
#: Auth/Http.php:37 Url.php:181
msgid "Authentication required"
msgstr ""
#: Auth/Http.php:124 Auth/Http.php:127 Url.php:185
msgid "Access denied"
msgstr ""
#: Auth/Http.php:128 Auth/Http.php:132
msgid "You must login to access this page."
msgstr ""
#: Url.php:177
msgid "Bad request"
msgstr ""
#: Url.php:178
msgid "Invalid request."
msgstr ""
#: Url.php:182
msgid "You have to be authenticated to access to this page."
msgstr ""
#: Url.php:186
msgid ""
"You do not have access to this application. If you think this is an error, "
"please contact support."
msgstr ""
#: Url.php:189
msgid "Whoops ! Page not found"
msgstr ""
#: Url.php:190
msgid "The requested page can not be found."
msgstr ""
#: Url.php:198
msgid "Error"
msgstr ""
#: Url.php:199
msgid "An unknown error occurred. If problem persist, please contact support."
msgstr ""
#: Url.php:262
msgid ""
"Unable to determine the requested page. If the problem persists, please "
"contact support."
msgstr ""
#: Url.php:416
msgid ""
"Unable to determine the requested page (loop detected). If the problem "
"persists, please contact support."
msgstr ""
#: Url.php:446
msgid "This request cannot be processed."
msgstr ""
#: Url.php:456
msgid "Authentication required but fail to authenticate you."
msgstr ""
#: Url.php:475
msgid "This request could not be processed correctly."
msgstr ""
#: Cli.php:44 #: Cli.php:44
msgid "Create a new project using EesyPHP framework" msgid "Create a new project using EesyPHP framework"
msgstr "" msgstr ""
@ -175,51 +85,155 @@ msgstr ""
msgid "An exception occured running command %s" msgid "An exception occured running command %s"
msgstr "" msgstr ""
#: Cli.php:307 #: Cli.php:309
msgid "" msgid ""
"This command only accept one argument: the listen address in format \"host:" "This command only accept one argument: the listen address in format \"host:"
"port\" or \":port\" (= 0.0.0.0:port)." "port\" or \":port\" (= 0.0.0.0:port)."
msgstr "" msgstr ""
#: Cli.php:318 #: Cli.php:320
msgid "" msgid ""
"Invalid listen address specify. Must be in formart host:port (or :port)." "Invalid listen address specify. Must be in formart host:port (or :port)."
msgstr "" msgstr ""
#: Cli.php:328 #: Cli.php:330
msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address." msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address."
msgstr "" msgstr ""
#: Cli.php:335 #: Cli.php:337
msgid "" msgid ""
"Invalid listen port specified. Must be a positive integer between 1 and " "Invalid listen port specified. Must be a positive integer between 1 and "
"65535." "65535."
msgstr "" msgstr ""
#: Cli.php:365 #: Cli.php:367
msgid "Can't invoke bash. Can't ask password prompt." msgid "Can't invoke bash. Can't ask password prompt."
msgstr "" msgstr ""
#: Cli.php:368 #: Cli.php:370
msgid "Please enter password:" msgid "Please enter password:"
msgstr "" msgstr ""
#: App.php:238 I18n.php:118 #: Db.php:74
msgid "Unable to connect to the database."
msgstr ""
#: Auth/Form.php:40
msgid "Invalid username or password."
msgstr ""
#: Auth/Form.php:72
msgid "Sign in"
msgstr ""
#: Auth/Http.php:37 Url.php:181
msgid "Authentication required"
msgstr ""
#: Auth/Http.php:124 Auth/Http.php:127 Url.php:185
msgid "Access denied"
msgstr ""
#: Auth/Http.php:128 Auth/Http.php:132
msgid "You must login to access this page."
msgstr ""
#: Email.php:101
#, php-format
msgid "</hr><p><small>Mail initialy intended for %s.</small></p>"
msgstr ""
#: Email.php:102
#, php-format
msgid ""
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
msgstr ""
#: Email.php:139
#, php-format
msgid "<p><small>%s: %s</small></p>"
msgstr ""
#: Email.php:140
#, php-format
msgid ""
"\n"
"%s: %s"
msgstr ""
#: Tpl.php:420
msgid "No template specified."
msgstr ""
#: Tpl.php:453
msgid "An error occurred while displaying this page."
msgstr ""
#: Url.php:177
msgid "Bad request"
msgstr ""
#: Url.php:178
msgid "Invalid request."
msgstr ""
#: Url.php:182
msgid "You have to be authenticated to access to this page."
msgstr ""
#: Url.php:186
msgid ""
"You do not have access to this application. If you think this is an error, "
"please contact support."
msgstr ""
#: Url.php:189
msgid "Whoops ! Page not found"
msgstr ""
#: Url.php:190
msgid "The requested page can not be found."
msgstr ""
#: Url.php:198
msgid "Error"
msgstr ""
#: Url.php:199
msgid "An unknown error occurred. If problem persist, please contact support."
msgstr ""
#: Url.php:262
msgid ""
"Unable to determine the requested page. If the problem persists, please "
"contact support."
msgstr ""
#: Url.php:416
msgid ""
"Unable to determine the requested page (loop detected). If the problem "
"persists, please contact support."
msgstr ""
#: Url.php:446
msgid "This request cannot be processed."
msgstr ""
#: Url.php:456
msgid "Authentication required but fail to authenticate you."
msgstr ""
#: Url.php:475
msgid "This request could not be processed correctly."
msgstr ""
#: I18n.php:118 App.php:238
msgid "Hello world !" msgid "Hello world !"
msgstr "" msgstr ""
#: App.php:240
msgid "Hello world!"
msgstr ""
#: App.php:251
msgid "Disconnected"
msgstr ""
#: App.php:253
msgid "You are now disconnected."
msgstr ""
#: I18n.php:138 #: I18n.php:138
msgid "Extract messages that need to be translated" msgid "Extract messages that need to be translated"
msgstr "" msgstr ""
@ -251,158 +265,156 @@ msgid ""
"directories to MO files and as JS catalogs in locales directory." "directories to MO files and as JS catalogs in locales directory."
msgstr "" msgstr ""
#: I18n.php:336 #: I18n.php:356
msgid "Fail to list EesyPHP PHP files." msgid "Fail to list EesyPHP PHP files."
msgstr "" msgstr ""
#: I18n.php:356 #: I18n.php:376
msgid "Fail to extract messages from EesyPHP PHP files using xgettext." msgid "Fail to extract messages from EesyPHP PHP files using xgettext."
msgstr "" msgstr ""
#: I18n.php:373 #: I18n.php:393
msgid "Fail to list application PHP files." msgid "Fail to list application PHP files."
msgstr "" msgstr ""
#: I18n.php:393 #: I18n.php:413
msgid "Fail to extract messages from PHP files using xgettext." msgid "Fail to extract messages from PHP files using xgettext."
msgstr "" msgstr ""
#: I18n.php:409 #: I18n.php:429
#, php-format #, php-format
msgid "Fail to list JS files in the directory of static files '%s'." msgid "Fail to list JS files in the directory of static files '%s'."
msgstr "" msgstr ""
#: I18n.php:431 #: I18n.php:451
#, php-format #, php-format
msgid "" msgid ""
"Fail to extract messages from JS files in the directory of static files '%s' " "Fail to extract messages from JS files in the directory of static files '%s' "
"using xgettext." "using xgettext."
msgstr "" msgstr ""
#: I18n.php:453 #: I18n.php:473
#, php-format #, php-format
msgid "" msgid ""
"Fail to extract messages from templates directory '%s' using tsmarty2c.php " "Fail to extract messages from templates directory '%s' using tsmarty2c.php "
"script." "script."
msgstr "" msgstr ""
#: I18n.php:489 #: I18n.php:509
msgid "Fail to merge messages using msgcat." msgid "Fail to merge messages using msgcat."
msgstr "" msgstr ""
#: I18n.php:503 #: I18n.php:523
#, php-format #, php-format
msgid "Compendium file %s not found." msgid "Compendium file %s not found."
msgstr "" msgstr ""
#: I18n.php:514 #: I18n.php:534
#, php-format #, php-format
msgid "POT file not found (%s). Please run extract_messages first." msgid "POT file not found (%s). Please run extract_messages first."
msgstr "" msgstr ""
#: I18n.php:526 I18n.php:636 #: I18n.php:546 I18n.php:656
#, php-format #, php-format
msgid "Lang directory '%s' found" msgid "Lang directory '%s' found"
msgstr "" msgstr ""
#: I18n.php:532 I18n.php:642 #: I18n.php:552 I18n.php:662
#, php-format #, php-format
msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it." msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it."
msgstr "" msgstr ""
#: I18n.php:547 #: I18n.php:567
#, php-format #, php-format
msgid "Fail to init messages in %s PO file using msginit (%s)." msgid "Fail to init messages in %s PO file using msginit (%s)."
msgstr "" msgstr ""
#: I18n.php:565 #: I18n.php:585
#, php-format #, php-format
msgid "Fail to update messages in %s PO file using msgmerge (%s)." msgid "Fail to update messages in %s PO file using msgmerge (%s)."
msgstr "" msgstr ""
#: I18n.php:571 I18n.php:650 #: I18n.php:591 I18n.php:670
#, php-format #, php-format
msgid "PO file not found in lang '%s' directory, ignore it." msgid "PO file not found in lang '%s' directory, ignore it."
msgstr "" msgstr ""
#: I18n.php:578 I18n.php:690 #: I18n.php:598 I18n.php:725
#, php-format #, php-format
msgid "Fail to open root lang directory (%s)." msgid "Fail to open root lang directory (%s)."
msgstr "" msgstr ""
#: I18n.php:606 #: I18n.php:626
#, php-format #, php-format
msgid "Lang alias symlink found: %s -> %s" msgid "Lang alias symlink found: %s -> %s"
msgstr "" msgstr ""
#: I18n.php:613 #: I18n.php:633
#, php-format #, php-format
msgid "JS catalog symlink for %s -> %s created (%s)" msgid "JS catalog symlink for %s -> %s created (%s)"
msgstr "" msgstr ""
#: I18n.php:617 #: I18n.php:637
#, php-format #, php-format
msgid "Fail to create JS catalog symlink for %s -> %s (%s)" msgid "Fail to create JS catalog symlink for %s -> %s (%s)"
msgstr "" msgstr ""
#: I18n.php:623 #: I18n.php:643
#, php-format #, php-format
msgid "JS catalog symlink for %s -> %s already exist (%s)" msgid "JS catalog symlink for %s -> %s already exist (%s)"
msgstr "" msgstr ""
#: I18n.php:628 #: I18n.php:648
#, php-format #, php-format
msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)" msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)"
msgstr "" msgstr ""
#: I18n.php:663 #: I18n.php:683
#, php-format #, php-format
msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)." msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)."
msgstr "" msgstr ""
#: I18n.php:673 #: I18n.php:695
#, php-format
msgid "Include core translated messages from %s PO file"
msgstr ""
#: I18n.php:702
#, php-format
msgid ""
"Core PO file %s not found: can not include its translated messages in "
"resulting JSON catalog."
msgstr ""
#: I18n.php:708
#, php-format #, php-format
msgid "Fail to open %s JS catalog file in write mode (%s)." msgid "Fail to open %s JS catalog file in write mode (%s)."
msgstr "" msgstr ""
#: I18n.php:678 #: I18n.php:713
#, php-format #, php-format
msgid "Fail to write %s JS catalog in file (%s)." msgid "Fail to write %s JS catalog in file (%s)."
msgstr "" msgstr ""
#: I18n.php:683 #: I18n.php:718
#, php-format #, php-format
msgid "%s JS catalog writed (%s)." msgid "%s JS catalog writed (%s)."
msgstr "" msgstr ""
#: Email.php:101 #: App.php:240
#, php-format msgid "Hello world!"
msgid "</hr><p><small>Mail initialy intended for %s.</small></p>"
msgstr "" msgstr ""
#: Email.php:102 #: App.php:251
#, php-format msgid "Disconnected"
msgid ""
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
msgstr "" msgstr ""
#: Email.php:139 #: App.php:253
#, php-format msgid "You are now disconnected."
msgid "<p><small>%s: %s</small></p>"
msgstr "" msgstr ""
#: Email.php:140 #: static/js/myconfirm.js:4 static/js/myconfirm.js:187
#, php-format #: static/js/myconfirm.js:216
msgid ""
"\n"
"%s: %s"
msgstr ""
#: static/js/myconfirm.js:4 static/js/myconfirm.js:171
#: static/js/myconfirm.js:200
msgid "Confirmation" msgid "Confirmation"
msgstr "" msgstr ""
@ -410,50 +422,38 @@ msgstr ""
msgid "Do you confirm?" msgid "Do you confirm?"
msgstr "" msgstr ""
#: static/js/myconfirm.js:11 static/js/myconfirm.js:108 #: static/js/myconfirm.js:18 static/js/myconfirm.js:122
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: static/js/myconfirm.js:17 static/js/myconfirm.js:114 #: static/js/myconfirm.js:24 static/js/myconfirm.js:128
msgid "Validate" msgid "Validate"
msgstr "" msgstr ""
#: static/js/myconfirm.js:52 #: static/js/myconfirm.js:64
msgid "OK" msgid "OK"
msgstr "" msgstr ""
#: static/js/myconfirm.js:91 #: static/js/myconfirm.js:103
msgid "Question" msgid "Question"
msgstr "" msgstr ""
#: static/js/myconfirm.js:92 #: static/js/myconfirm.js:104
msgid "Please enter your answer below:" msgid "Please enter your answer below:"
msgstr "" msgstr ""
#: static/js/myconfirm.js:143 #: static/js/myconfirm.js:157
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""
#: static/js/myconfirm.js:144 #: static/js/myconfirm.js:158
msgid "Please wait while your request is being processed." msgid "Please wait while your request is being processed."
msgstr "" msgstr ""
#: static/js/myconfirm.js:172 static/js/myconfirm.js:201 #: static/js/myconfirm.js:188 static/js/myconfirm.js:217
msgid "Are you sure?" msgid "Are you sure?"
msgstr "" msgstr ""
#: templates/login.tpl:9
msgid "Username"
msgstr ""
#: templates/login.tpl:13
msgid "Password"
msgstr ""
#: templates/login.tpl:16
msgid "Submit"
msgstr ""
#: templates/fatal_error.tpl:3 #: templates/fatal_error.tpl:3
msgid "Oops..." msgid "Oops..."
msgstr "" msgstr ""
@ -472,18 +472,30 @@ msgstr ""
msgid "Back" msgid "Back"
msgstr "" msgstr ""
#: templates/empty.tpl:60 #: templates/homepage.tpl:6
msgid "Sign out"
msgstr ""
#: templates/homepage.tpl:5
msgid "Hello, world!" msgid "Hello, world!"
msgstr "" msgstr ""
#: templates/homepage.tpl:6 #: templates/homepage.tpl:8
msgid "" msgid ""
"This is the default page of a new app using EesyPHP framework. Register your " "This is the default page of a new app using EesyPHP framework. Register your "
"own templates directory and create a <em>homepage.tpl</em> file to overwrite " "own templates directory and create a <em>homepage.tpl</em> file to overwrite "
"it. You could also overwrite the URL handler for the root of the web " "it. You could also overwrite the URL handler for the root of the web "
"application." "application."
msgstr "" msgstr ""
#: templates/empty.tpl:64
msgid "Sign out"
msgstr ""
#: templates/login.tpl:14 templates/login.tpl:15
msgid "Username"
msgstr ""
#: templates/login.tpl:19 templates/login.tpl:20
msgid "Password"
msgstr ""
#: templates/login.tpl:24
msgid "Submit"
msgstr ""

View file

@ -280,13 +280,18 @@ class I18n {
* Convert PO file to JSON file * Convert PO file to JSON file
* *
* @param string $locale The locale of the input PO file * @param string $locale The locale of the input PO file
* @param string $path The path of the input PO file * @param string $po_path The path of the main PO input file
* @param bool $core Set to True if it's a run for core translations * @param string|null $domain The domain specified in the output JSON file
* (optional, default: self :: CORE_TEXT_DOMAIN)
* @param array<string>|null $other_po_paths Optional list of other PO files: if specified,
* their translated messages will be loaded and
* included in output JSON file.
* *
* @return string JSON encoded file content * @return string JSON encoded file content
*/ */
public static function po2json($locale, $path, $core=false) { public static function po2json($locale, $po_path, $domain=null, $other_po_paths=null) {
$fileHandler = new \Sepia\PoParser\SourceHandler\FileSystem($path); Log :: trace('Load PO file %s', $po_path);
$fileHandler = new \Sepia\PoParser\SourceHandler\FileSystem($po_path);
$poparser = new \Sepia\PoParser\Parser($fileHandler); $poparser = new \Sepia\PoParser\Parser($fileHandler);
$catalog = $poparser->parse(); $catalog = $poparser->parse();
$headers = $catalog->getHeader(); $headers = $catalog->getHeader();
@ -299,10 +304,25 @@ class I18n {
$msg = array($msg, $entry->getMsgIdPlural()); $msg = array($msg, $entry->getMsgIdPlural());
$messages[$entry->getMsgId()] = $msg; $messages[$entry->getMsgId()] = $msg;
} }
foreach(ensure_is_array($other_po_paths) as $path) {
Log :: trace('Load PO file %s (for its translated messages only)', $path);
$fileHandler = new \Sepia\PoParser\SourceHandler\FileSystem($path);
$poparser = new \Sepia\PoParser\Parser($fileHandler);
$catalog = $poparser->parse();
foreach ($catalog->getEntries() as $entry) {
// msg id json format
$msg = $entry->getMsgStr();
if ($entry->isPlural())
$msg = array($msg, $entry->getMsgIdPlural());
$messages[$entry->getMsgId()] = $msg;
}
}
return json_encode(array( return json_encode(array(
'messages' => $messages, 'messages' => $messages,
'locale' => $locale, 'locale' => $locale,
'domain' => $core?self :: CORE_TEXT_DOMAIN:self :: TEXT_DOMAIN, 'domain' => $domain?$domain:self :: CORE_TEXT_DOMAIN,
'plural_expr' => '(n > 1)', 'plural_expr' => '(n > 1)',
)); ));
} }
@ -667,7 +687,22 @@ class I18n {
} }
// Compile messages from PO file to JS catalog file // Compile messages from PO file to JS catalog file
$js_catalog = self :: po2json($lang, $po_file, Cli::core_mode()); $other_po_paths = array();
if ($domain != self::CORE_TEXT_DOMAIN) {
$core_po_file = self::$core_root_path."/$lang/LC_MESSAGES/".self::CORE_TEXT_DOMAIN.".po";
if (is_file($core_po_file)) {
Log :: debug(
self::_('Include core translated messages from %s PO file'),
$core_po_file
);
$other_po_paths[] = $core_po_file;
}
else
Log :: warning(
self::_('Core PO file %s not found: can not include its translated messages in '.
'resulting JSON catalog.'), $core_po_file);
}
$js_catalog = self :: po2json($lang, $po_file, $domain, $other_po_paths);
$js_file = "$root_path/$lang.js"; $js_file = "$root_path/$lang.js";
if(!$fd = fopen($js_file, 'w')) { if(!$fd = fopen($js_file, 'w')) {
Log :: error(self::_("Fail to open %s JS catalog file in write mode (%s)."), Log :: error(self::_("Fail to open %s JS catalog file in write mode (%s)."),