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 ""
msgstr ""
"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"
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
"Last-Translator: Benjamin Renard <brenard@zionetrix.net>\n"
"Language-Team: \n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
@ -12,104 +12,6 @@ msgstr ""
"X-Generator: Poedit 2.4.2\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
msgid "Create a new project using EesyPHP framework"
msgstr "Créer un nouveau projet utilisant le framework EesyPHP"
@ -198,7 +100,7 @@ msgstr ""
msgid "An exception occured running command %s"
msgstr "Une exception est survenue en exécutant la commande %s"
#: Cli.php:307
#: Cli.php:309
msgid ""
"This command only accept one argument: the listen address in format \"host:"
"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 "
"\"hôte:port\" ou \":port\" (= 0.0.0.0:port)."
#: Cli.php:318
#: Cli.php:320
msgid ""
"Invalid listen address specify. Must be in formart host:port (or :port)."
msgstr ""
"Adresse d'écoute spécifiée invalide. Elle doit être au format hôte:port (ou :"
"port)."
#: Cli.php:328
#: Cli.php:330
msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address."
msgstr ""
"Hôte d'écoute spécifié invalide. Il doit s'agir d'une adresse IPv4 ou IPv6."
#: Cli.php:335
#: Cli.php:337
msgid ""
"Invalid listen port specified. Must be a positive integer between 1 and "
"65535."
@ -226,32 +128,150 @@ msgstr ""
"Port d'écoute spécifié invalide. Il doit s'agir d'un entier positif entre 1 "
"et 65535."
#: Cli.php:365
#: Cli.php:367
msgid "Can't invoke bash. Can't ask password prompt."
msgstr ""
"Impossible d'utiliser bash. Impossible de demander à l'utilisateur de saisir "
"un mot de passe."
#: Cli.php:368
#: Cli.php:370
msgid "Please enter password:"
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 !"
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
msgid "Extract messages that need to be translated"
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 "
"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."
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."
msgstr ""
"Une erreur est survenue en extrayant les messages depuis les fichiers PHP "
"d'EesyPHP en utilisant xgettext."
#: I18n.php:373
#: I18n.php:393
msgid "Fail to list application PHP files."
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."
msgstr ""
"Impossible d'extraire les messages depuis les fichiers PHP en utilisant "
"xgettext."
#: I18n.php:409
#: I18n.php:429
#, php-format
msgid "Fail to list JS files in the directory of static files '%s'."
msgstr ""
"Une erreur est survenue en listant les fichiers JS dans le dossier des "
"fichiers statiques '%s'."
#: I18n.php:431
#: I18n.php:451
#, php-format
msgid ""
"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 "
"dossier des fichiers statiques '%s' en utilisant xgettext."
#: I18n.php:453
#: I18n.php:473
#, php-format
msgid ""
"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 "
"utilisant le script tsmarty2c.php."
#: I18n.php:489
#: I18n.php:509
msgid "Fail to merge messages using msgcat."
msgstr "Impossible de fusionner les messages en utilisant msgcat."
#: I18n.php:503
#: I18n.php:523
#, php-format
msgid "Compendium file %s not found."
msgstr "Fichier compendium %s introuvable."
#: I18n.php:514
#: I18n.php:534
#, php-format
msgid "POT file not found (%s). Please run extract_messages first."
msgstr ""
"Fichier POT introuvable (%s). Merci de lancer la commande extract_messages "
"pour commencer."
#: I18n.php:526 I18n.php:636
#: I18n.php:546 I18n.php:656
#, php-format
msgid "Lang directory '%s' found"
msgstr "Dossier de langue '%s' trouvé"
#: I18n.php:532 I18n.php:642
#: I18n.php:552 I18n.php:662
#, php-format
msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it."
msgstr ""
"Le dossier LC_MESSAGES est introuvable dans le dossier de langue '%s', on "
"l'ignore."
#: I18n.php:547
#: I18n.php:567
#, php-format
msgid "Fail to init messages in %s PO file using msginit (%s)."
msgstr ""
"Impossible d'initialiser les messages dans le fichier PO %s en utilisant "
"msginit (%s)."
#: I18n.php:565
#: I18n.php:585
#, php-format
msgid "Fail to update messages in %s PO file using msgmerge (%s)."
msgstr ""
"Impossible de mettre à jour les messages dans les fichiers PO %s en "
"utilisant msgmerge (%s)."
#: I18n.php:571 I18n.php:650
#: I18n.php:591 I18n.php:670
#, php-format
msgid "PO file not found in lang '%s' directory, ignore it."
msgstr ""
"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
msgid "Fail to open root lang directory (%s)."
msgstr "Impossible d'ouvrir le dossier racine des langues (%s)."
#: I18n.php:606
#: I18n.php:626
#, php-format
msgid "Lang alias symlink found: %s -> %s"
msgstr "Lien symbolique d'alias de langue trouvé : %s -> %s"
#: I18n.php:613
#: I18n.php:633
#, php-format
msgid "JS catalog symlink for %s -> %s created (%s)"
msgstr "Lien symbolique de catalogue JS pour %s -> %s créé (%s)"
#: I18n.php:617
#: I18n.php:637
#, php-format
msgid "Fail to create JS catalog symlink for %s -> %s (%s)"
msgstr ""
"Impossible de créer le lien symbolique de catalogue JS pour %s -> %s (%s)"
#: I18n.php:623
#: I18n.php:643
#, php-format
msgid "JS catalog symlink for %s -> %s already exist (%s)"
msgstr "Le lien symbolique du catalogue JS pour %s -> %s existe déjà (%s)"
#: I18n.php:628
#: I18n.php:648
#, php-format
msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)"
msgstr ""
"Le catalogue JS pour %s existe, mais il ne s'agit par d'un lien symbolique "
"vers %s (%s)"
#: I18n.php:663
#: I18n.php:683
#, php-format
msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)."
msgstr ""
"Impossible de compiler les messages depuis le fichier PO %s en tant que "
"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
msgid "Fail to open %s JS catalog file in write mode (%s)."
msgstr "Impossible d'ouvrir le catalogue JS %s en mode écriture (%s)."
#: I18n.php:678
#: I18n.php:713
#, php-format
msgid "Fail to write %s JS catalog in file (%s)."
msgstr "Impossible d'écrire le fichier du catalogue JS %s (%s)."
#: I18n.php:683
#: I18n.php:718
#, php-format
msgid "%s JS catalog writed (%s)."
msgstr "Catalogue JS %s créé (%s)."
#: 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>"
#: App.php:240
msgid "Hello world!"
msgstr "Salut tout le monde !"
#: Email.php:102
#, php-format
msgid ""
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
msgstr ""
"\n"
"\n"
"\n"
"Mail originalement destiné à %s."
#: App.php:251
msgid "Disconnected"
msgstr "Déconnecté"
#: Email.php:139
#, php-format
msgid "<p><small>%s: %s</small></p>"
msgstr "<p><small>%s: %s</small></p>"
#: App.php:253
msgid "You are now disconnected."
msgstr "Vous êtes maintenant déconnecté."
#: Email.php:140
#, php-format
msgid ""
"\n"
"%s: %s"
msgstr ""
"\n"
"%s: %s"
#: static/js/myconfirm.js:4 static/js/myconfirm.js:171
#: static/js/myconfirm.js:200
#: static/js/myconfirm.js:4 static/js/myconfirm.js:187
#: static/js/myconfirm.js:216
msgid "Confirmation"
msgstr "Confirmation"
@ -481,50 +495,38 @@ msgstr "Confirmation"
msgid "Do you confirm?"
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"
msgstr "Annuler"
#: static/js/myconfirm.js:17 static/js/myconfirm.js:114
#: static/js/myconfirm.js:24 static/js/myconfirm.js:128
msgid "Validate"
msgstr "Valider"
#: static/js/myconfirm.js:52
#: static/js/myconfirm.js:64
msgid "OK"
msgstr "OK"
#: static/js/myconfirm.js:91
#: static/js/myconfirm.js:103
msgid "Question"
msgstr "Question"
#: static/js/myconfirm.js:92
#: static/js/myconfirm.js:104
msgid "Please enter your answer below:"
msgstr "Merci de saisir vos réponses ci-dessous :"
#: static/js/myconfirm.js:143
#: static/js/myconfirm.js:157
msgid "Please wait"
msgstr "Merci de patienter"
#: static/js/myconfirm.js:144
#: static/js/myconfirm.js:158
msgid "Please wait while your request is being processed."
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?"
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
msgid "Oops..."
msgstr "Oups..."
@ -546,15 +548,11 @@ msgstr "Erreur : %1"
msgid "Back"
msgstr "Retour"
#: templates/empty.tpl:60
msgid "Sign out"
msgstr "Déconnexion"
#: templates/homepage.tpl:5
#: templates/homepage.tpl:6
msgid "Hello, world!"
msgstr "Bonjour tout le monde !"
#: templates/homepage.tpl:6
#: templates/homepage.tpl:8
msgid ""
"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 "
@ -566,6 +564,22 @@ msgstr ""
"fichier <em>homepage.tpl</em> pour l'écraser. Vous pouvez également écraser "
"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"
#~ msgstr "Déconnexion"

View file

@ -1,101 +1,11 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2023-03-03 10:42+0100\n"
"PO-Revision-Date: 2023-03-03 10:42+0100\n"
"POT-Creation-Date: 2023-03-07 17:49+0100\n"
"PO-Revision-Date: 2023-03-07 17:49+0100\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\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
msgid "Create a new project using EesyPHP framework"
msgstr ""
@ -175,51 +85,155 @@ msgstr ""
msgid "An exception occured running command %s"
msgstr ""
#: Cli.php:307
#: Cli.php:309
msgid ""
"This command only accept one argument: the listen address in format \"host:"
"port\" or \":port\" (= 0.0.0.0:port)."
msgstr ""
#: Cli.php:318
#: Cli.php:320
msgid ""
"Invalid listen address specify. Must be in formart host:port (or :port)."
msgstr ""
#: Cli.php:328
#: Cli.php:330
msgid "Invalid listen host specified. Must be an IPv4 or IPv6 address."
msgstr ""
#: Cli.php:335
#: Cli.php:337
msgid ""
"Invalid listen port specified. Must be a positive integer between 1 and "
"65535."
msgstr ""
#: Cli.php:365
#: Cli.php:367
msgid "Can't invoke bash. Can't ask password prompt."
msgstr ""
#: Cli.php:368
#: Cli.php:370
msgid "Please enter password:"
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 !"
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
msgid "Extract messages that need to be translated"
msgstr ""
@ -251,158 +265,156 @@ msgid ""
"directories to MO files and as JS catalogs in locales directory."
msgstr ""
#: I18n.php:336
#: I18n.php:356
msgid "Fail to list EesyPHP PHP files."
msgstr ""
#: I18n.php:356
#: I18n.php:376
msgid "Fail to extract messages from EesyPHP PHP files using xgettext."
msgstr ""
#: I18n.php:373
#: I18n.php:393
msgid "Fail to list application PHP files."
msgstr ""
#: I18n.php:393
#: I18n.php:413
msgid "Fail to extract messages from PHP files using xgettext."
msgstr ""
#: I18n.php:409
#: I18n.php:429
#, php-format
msgid "Fail to list JS files in the directory of static files '%s'."
msgstr ""
#: I18n.php:431
#: I18n.php:451
#, php-format
msgid ""
"Fail to extract messages from JS files in the directory of static files '%s' "
"using xgettext."
msgstr ""
#: I18n.php:453
#: I18n.php:473
#, php-format
msgid ""
"Fail to extract messages from templates directory '%s' using tsmarty2c.php "
"script."
msgstr ""
#: I18n.php:489
#: I18n.php:509
msgid "Fail to merge messages using msgcat."
msgstr ""
#: I18n.php:503
#: I18n.php:523
#, php-format
msgid "Compendium file %s not found."
msgstr ""
#: I18n.php:514
#: I18n.php:534
#, php-format
msgid "POT file not found (%s). Please run extract_messages first."
msgstr ""
#: I18n.php:526 I18n.php:636
#: I18n.php:546 I18n.php:656
#, php-format
msgid "Lang directory '%s' found"
msgstr ""
#: I18n.php:532 I18n.php:642
#: I18n.php:552 I18n.php:662
#, php-format
msgid "LC_MESSAGES directory not found in lang '%s' directory, ignore it."
msgstr ""
#: I18n.php:547
#: I18n.php:567
#, php-format
msgid "Fail to init messages in %s PO file using msginit (%s)."
msgstr ""
#: I18n.php:565
#: I18n.php:585
#, php-format
msgid "Fail to update messages in %s PO file using msgmerge (%s)."
msgstr ""
#: I18n.php:571 I18n.php:650
#: I18n.php:591 I18n.php:670
#, php-format
msgid "PO file not found in lang '%s' directory, ignore it."
msgstr ""
#: I18n.php:578 I18n.php:690
#: I18n.php:598 I18n.php:725
#, php-format
msgid "Fail to open root lang directory (%s)."
msgstr ""
#: I18n.php:606
#: I18n.php:626
#, php-format
msgid "Lang alias symlink found: %s -> %s"
msgstr ""
#: I18n.php:613
#: I18n.php:633
#, php-format
msgid "JS catalog symlink for %s -> %s created (%s)"
msgstr ""
#: I18n.php:617
#: I18n.php:637
#, php-format
msgid "Fail to create JS catalog symlink for %s -> %s (%s)"
msgstr ""
#: I18n.php:623
#: I18n.php:643
#, php-format
msgid "JS catalog symlink for %s -> %s already exist (%s)"
msgstr ""
#: I18n.php:628
#: I18n.php:648
#, php-format
msgid "JS catalog file for %s already exist, but it's not a symlink to %s (%s)"
msgstr ""
#: I18n.php:663
#: I18n.php:683
#, php-format
msgid "Fail to compile messages from %s PO file as MO file using msgfmt (%s)."
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
msgid "Fail to open %s JS catalog file in write mode (%s)."
msgstr ""
#: I18n.php:678
#: I18n.php:713
#, php-format
msgid "Fail to write %s JS catalog in file (%s)."
msgstr ""
#: I18n.php:683
#: I18n.php:718
#, php-format
msgid "%s JS catalog writed (%s)."
msgstr ""
#: Email.php:101
#, php-format
msgid "</hr><p><small>Mail initialy intended for %s.</small></p>"
#: App.php:240
msgid "Hello world!"
msgstr ""
#: Email.php:102
#, php-format
msgid ""
"\n"
"\n"
"\n"
"Mail initialy intended for %s."
#: App.php:251
msgid "Disconnected"
msgstr ""
#: Email.php:139
#, php-format
msgid "<p><small>%s: %s</small></p>"
#: App.php:253
msgid "You are now disconnected."
msgstr ""
#: Email.php:140
#, php-format
msgid ""
"\n"
"%s: %s"
msgstr ""
#: static/js/myconfirm.js:4 static/js/myconfirm.js:171
#: static/js/myconfirm.js:200
#: static/js/myconfirm.js:4 static/js/myconfirm.js:187
#: static/js/myconfirm.js:216
msgid "Confirmation"
msgstr ""
@ -410,50 +422,38 @@ msgstr ""
msgid "Do you confirm?"
msgstr ""
#: static/js/myconfirm.js:11 static/js/myconfirm.js:108
#: static/js/myconfirm.js:18 static/js/myconfirm.js:122
msgid "Cancel"
msgstr ""
#: static/js/myconfirm.js:17 static/js/myconfirm.js:114
#: static/js/myconfirm.js:24 static/js/myconfirm.js:128
msgid "Validate"
msgstr ""
#: static/js/myconfirm.js:52
#: static/js/myconfirm.js:64
msgid "OK"
msgstr ""
#: static/js/myconfirm.js:91
#: static/js/myconfirm.js:103
msgid "Question"
msgstr ""
#: static/js/myconfirm.js:92
#: static/js/myconfirm.js:104
msgid "Please enter your answer below:"
msgstr ""
#: static/js/myconfirm.js:143
#: static/js/myconfirm.js:157
msgid "Please wait"
msgstr ""
#: static/js/myconfirm.js:144
#: static/js/myconfirm.js:158
msgid "Please wait while your request is being processed."
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?"
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
msgid "Oops..."
msgstr ""
@ -472,18 +472,30 @@ msgstr ""
msgid "Back"
msgstr ""
#: templates/empty.tpl:60
msgid "Sign out"
msgstr ""
#: templates/homepage.tpl:5
#: templates/homepage.tpl:6
msgid "Hello, world!"
msgstr ""
#: templates/homepage.tpl:6
#: templates/homepage.tpl:8
msgid ""
"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 "
"it. You could also overwrite the URL handler for the root of the web "
"application."
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

@ -279,14 +279,19 @@ class I18n {
/**
* Convert PO file to JSON file
*
* @param string $locale The locale of the input PO file
* @param string $path The path of the input PO file
* @param bool $core Set to True if it's a run for core translations
* @param string $locale The locale of the input PO file
* @param string $po_path The path of the main PO input file
* @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
*/
public static function po2json($locale, $path, $core=false) {
$fileHandler = new \Sepia\PoParser\SourceHandler\FileSystem($path);
public static function po2json($locale, $po_path, $domain=null, $other_po_paths=null) {
Log :: trace('Load PO file %s', $po_path);
$fileHandler = new \Sepia\PoParser\SourceHandler\FileSystem($po_path);
$poparser = new \Sepia\PoParser\Parser($fileHandler);
$catalog = $poparser->parse();
$headers = $catalog->getHeader();
@ -299,10 +304,25 @@ class I18n {
$msg = array($msg, $entry->getMsgIdPlural());
$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(
'messages' => $messages,
'locale' => $locale,
'domain' => $core?self :: CORE_TEXT_DOMAIN:self :: TEXT_DOMAIN,
'domain' => $domain?$domain:self :: CORE_TEXT_DOMAIN,
'plural_expr' => '(n > 1)',
));
}
@ -667,7 +687,22 @@ class I18n {
}
// 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";
if(!$fd = fopen($js_file, 'w')) {
Log :: error(self::_("Fail to open %s JS catalog file in write mode (%s)."),