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
example/locales
locales
src

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)."),