pictcode / lib / Cake / Console / Command / I18nShell.php @ 4c96e5a3
履歴 | 表示 | アノテート | ダウンロード (3.131 KB)
| 1 | 635eef61 | spyder1211 | <?php
 | 
      
|---|---|---|---|
| 2 | /**
 | 
      ||
| 3 |  * Internationalization Management Shell
 | 
      ||
| 4 |  *
 | 
      ||
| 5 |  * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 | 
      ||
| 6 |  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 | 
      ||
| 7 |  *
 | 
      ||
| 8 |  * Licensed under The MIT License
 | 
      ||
| 9 |  * For full copyright and license information, please see the LICENSE.txt
 | 
      ||
| 10 |  * Redistributions of files must retain the above copyright notice.
 | 
      ||
| 11 |  *
 | 
      ||
| 12 |  * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 | 
      ||
| 13 |  * @link          http://cakephp.org CakePHP(tm) Project
 | 
      ||
| 14 |  * @since         CakePHP(tm) v 1.2.0.5669
 | 
      ||
| 15 |  * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 | 
      ||
| 16 |  */
 | 
      ||
| 17 | |||
| 18 | App::uses('AppShell', 'Console/Command');  | 
      ||
| 19 | |||
| 20 | /**
 | 
      ||
| 21 |  * Shell for I18N management.
 | 
      ||
| 22 |  *
 | 
      ||
| 23 |  * @package       Cake.Console.Command
 | 
      ||
| 24 |  */
 | 
      ||
| 25 | class I18nShell extends AppShell {  | 
      ||
| 26 | |||
| 27 | /**
 | 
      ||
| 28 |  * Contains database source to use
 | 
      ||
| 29 |  *
 | 
      ||
| 30 |  * @var string
 | 
      ||
| 31 |  */
 | 
      ||
| 32 | public $dataSource = 'default';  | 
      ||
| 33 | |||
| 34 | /**
 | 
      ||
| 35 |  * Contains tasks to load and instantiate
 | 
      ||
| 36 |  *
 | 
      ||
| 37 |  * @var array
 | 
      ||
| 38 |  */
 | 
      ||
| 39 | public $tasks = array('DbConfig', 'Extract');  | 
      ||
| 40 | |||
| 41 | /**
 | 
      ||
| 42 |  * Override startup of the Shell
 | 
      ||
| 43 |  *
 | 
      ||
| 44 |  * @return mixed
 | 
      ||
| 45 |  */
 | 
      ||
| 46 | public function startup() {  | 
      ||
| 47 |                 $this->_welcome();
 | 
      ||
| 48 | if (isset($this->params['datasource'])) {  | 
      ||
| 49 | $this->dataSource = $this->params['datasource'];  | 
      ||
| 50 | }  | 
      ||
| 51 | |||
| 52 | if ($this->command && !in_array($this->command, array('help'))) {  | 
      ||
| 53 | if (!config('database')) {  | 
      ||
| 54 | $this->out(__d('cake_console', 'Your database configuration was not found. Take a moment to create one.'));  | 
      ||
| 55 | return $this->DbConfig->execute();  | 
      ||
| 56 | }  | 
      ||
| 57 | }  | 
      ||
| 58 | }  | 
      ||
| 59 | |||
| 60 | /**
 | 
      ||
| 61 |  * Override main() for help message hook
 | 
      ||
| 62 |  *
 | 
      ||
| 63 |  * @return void
 | 
      ||
| 64 |  */
 | 
      ||
| 65 | public function main() {  | 
      ||
| 66 | $this->out(__d('cake_console', '<info>I18n Shell</info>'));  | 
      ||
| 67 |                 $this->hr();
 | 
      ||
| 68 | $this->out(__d('cake_console', '[E]xtract POT file from sources'));  | 
      ||
| 69 | $this->out(__d('cake_console', '[I]nitialize i18n database table'));  | 
      ||
| 70 | $this->out(__d('cake_console', '[H]elp'));  | 
      ||
| 71 | $this->out(__d('cake_console', '[Q]uit'));  | 
      ||
| 72 | |||
| 73 | $choice = strtolower($this->in(__d('cake_console', 'What would you like to do?'), array('E', 'I', 'H', 'Q')));  | 
      ||
| 74 | switch ($choice) {  | 
      ||
| 75 | case 'e':  | 
      ||
| 76 | $this->Extract->execute();  | 
      ||
| 77 |                                 break;
 | 
      ||
| 78 | case 'i':  | 
      ||
| 79 |                                 $this->initdb();
 | 
      ||
| 80 |                                 break;
 | 
      ||
| 81 | case 'h':  | 
      ||
| 82 | $this->out($this->OptionParser->help());  | 
      ||
| 83 |                                 break;
 | 
      ||
| 84 | case 'q':  | 
      ||
| 85 | return $this->_stop();  | 
      ||
| 86 |                         default:
 | 
      ||
| 87 | $this->out(__d('cake_console', 'You have made an invalid selection. Please choose a command to execute by entering E, I, H, or Q.'));  | 
      ||
| 88 | }  | 
      ||
| 89 |                 $this->hr();
 | 
      ||
| 90 | $this->main();  | 
      ||
| 91 | }  | 
      ||
| 92 | |||
| 93 | /**
 | 
      ||
| 94 |  * Initialize I18N database.
 | 
      ||
| 95 |  *
 | 
      ||
| 96 |  * @return void
 | 
      ||
| 97 |  */
 | 
      ||
| 98 | public function initdb() {  | 
      ||
| 99 | $this->dispatchShell('schema create i18n');  | 
      ||
| 100 | }  | 
      ||
| 101 | |||
| 102 | /**
 | 
      ||
| 103 |  * Gets the option parser instance and configures it.
 | 
      ||
| 104 |  *
 | 
      ||
| 105 |  * @return ConsoleOptionParser
 | 
      ||
| 106 |  */
 | 
      ||
| 107 | public function getOptionParser() {  | 
      ||
| 108 | $parser = parent::getOptionParser();  | 
      ||
| 109 | |||
| 110 |                 $parser->description(
 | 
      ||
| 111 | __d('cake_console', 'I18n Shell initializes i18n database table for your application and generates .pot files(s) with translations.')  | 
      ||
| 112 | )->addSubcommand('initdb', array(  | 
      ||
| 113 | 'help' => __d('cake_console', 'Initialize the i18n table.')  | 
      ||
| 114 | ))->addSubcommand('extract', array(  | 
      ||
| 115 | 'help' => __d('cake_console', 'Extract the po translations from your application'),  | 
      ||
| 116 | 'parser' => $this->Extract->getOptionParser()  | 
      ||
| 117 | ));  | 
      ||
| 118 | |||
| 119 | return $parser;  | 
      ||
| 120 | }  | 
      ||
| 121 | |||
| 122 | }  |