CLI compile_messages: include core translated messages in JSON catalog
This commit is contained in:
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
Binary file not shown.
|
@ -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"
|
||||
|
||||
|
|
|
@ -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 ""
|
||||
|
|
49
src/I18n.php
49
src/I18n.php
|
@ -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)."),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue