File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file tools/xmlEmailsToPo.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class xmlEmailsToPo * @ingroup tools */ require(dirname(dirname(dirname(dirname(__FILE__)))) . '/tools/bootstrap.inc.php'); class xmlEmailsToPo extends CommandLineTool { /** @var string Name of source XML email file */ protected $sourceXmlFile; /** @var string Name of target PO file */ protected $poFile; /** * Constructor */ function __construct($argv = array()) { parent::__construct($argv); array_shift($argv); // Shift the tool name off the top $this->sourceXmlFile = array_shift($argv); $this->poFile = array_shift($argv); if (empty($this->sourceXmlFile) || !file_exists($this->sourceXmlFile)) { $this->usage(); exit(2); } if (empty($this->poFile)) { $this->usage(); exit(3); } } /** * Print command usage information. */ function usage() { echo "Script to convert XML email file to PO format\n" . "Usage: {$this->scriptName} input-locale-file.xml output-file.po\n"; } /** * Parse a locale file into an array. * @param $filename string Filename to locale file * @return array (key => message) */ static function parseEmailFile($filename, &$locale) { $localeData = array(); $xmlDao = new XMLDAO(); $data = $xmlDao->parse($filename, array('email_texts', 'email_text', 'subject', 'body', 'description')); if (!$data) return null; $locale = $data->getAttribute('locale'); foreach ($data->getChildren() as $emailNode) { $key = $emailNode->getAttribute('key'); $subject = $emailNode->getChildValue('subject'); $body = $emailNode->getChildValue('body'); $description = $emailNode->getChildValue('description'); $localeData[$key] = array( 'subject' => $emailNode->getChildValue('subject'), 'body' => $emailNode->getChildValue('body'), 'description' => $emailNode->getChildValue('description'), ); } return $localeData; } /** * Convert an XML locale file to a PO file. */ function execute() { $localeData = array(); $locale = null; $sourceData = self::parseEmailFile($this->sourceXmlFile, $locale); if (!$sourceData) throw new Exception('Unable to load source file ' . $this->sourceXmlFile); import('lib.pkp.classes.file.EditableEmailFile'); $editableEmailFile = new EditableEmailFile($locale, $this->sourceXmlFile); $translations = new \Gettext\Translations(); foreach ($sourceData as $emailKey => $sourceEmailData) { // Convert EMAIL_KEY_NAME to emailKeyName $camelEmailKey = str_replace(' ', '', ucwords(str_replace('_', ' ', strtolower($emailKey)))); $camelEmailKey[0] = strtolower($camelEmailKey[0]); foreach (array('subject', 'body', 'description') as $elementName) { $elementValue = $sourceEmailData[$elementName]; $key = "emails.$camelEmailKey.$elementName"; $translation = new \Gettext\Translation('', $key); $translation->setTranslation($elementValue); $translations->append($translation); } $editableEmailFile->update( $emailKey, "{translate key=\"emails.$camelEmailKey.subject\"}", "{translate key=\"emails.$camelEmailKey.body\"}", "{translate key=\"emails.$camelEmailKey.description\"}" ); } $editableEmailFile->write(); $translations->toPoFile($this->poFile); } } $tool = new xmlEmailsToPo(isset($argv) ? $argv : array()); $tool->execute();
Simpan