File: i18n.php

package info (click to toggle)
cakephp 1.2.0.7296-rc2-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 6,032 kB
  • ctags: 23,481
  • sloc: php: 77,476; sql: 92; makefile: 34; sh: 5
file content (133 lines) | stat: -rw-r--r-- 3,307 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
/* SVN FILE: $Id: i18n.php 7118 2008-06-04 20:49:29Z gwoo $ */
/**
 * Short description for file.
 *
 * Long description for file
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/>
 * Copyright 2005-2008, Cake Software Foundation, Inc.
 *							  1785 E. Sahara Avenue, Suite 490-204
 *							  Las Vegas, Nevada 89104
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @filesource
 * @copyright	   Copyright 2005-2008, Cake Software Foundation, Inc.
 * @link				http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
 * @package		 cake
 * @subpackage	  cake.cake.console.libs
 * @since		   CakePHP(tm) v 1.2.0.5669
 * @version		 $Revision: 7118 $
 * @modifiedby	  $LastChangedBy: gwoo $
 * @lastmodified	$Date: 2008-06-04 13:49:29 -0700 (Wed, 04 Jun 2008) $
 * @license		 http://www.opensource.org/licenses/mit-license.php The MIT License
 */
/**
 * Shell for I18N management.
 *
 * @package		cake
 * @subpackage	cake.cake.console.libs
 */
class I18nShell extends Shell {
/**
 * Contains database source to use
 *
 * @var string
 * @access public
 */
	var $dataSource = 'default';
/**
 * Contains tasks to load and instantiate
 *
 * @var array
 * @access public
 */
	var $tasks = array('DbConfig', 'Extract');

/**
 * Override startup of the Shell
 *
 * @access public
 */
	function startup() {
		$this->_welcome();
		if (isset($this->params['datasource'])) {
			$this->dataSource = $this->params['datasource'];
		}

		if ($this->command && !in_array($this->command, array('help'))) {
			if (!config('database')) {
				$this->out(__('Your database configuration was not found. Take a moment to create one.', true), true);
				return $this->DbConfig->execute();
			}
		}
	}
/**
 * Override main() for help message hook
 *
 * @access public
 */
	function main() {
		$this->out(__('I18n Shell', true));
		$this->hr();
		$this->out(__('[E]xtract POT file from sources', true));
		$this->out(__('[I]nitialize i18n database table', true));
		$this->out(__('[H]elp', true));
		$this->out(__('[Q]uit', true));

		$choice = strtoupper($this->in(__('What would you like to do?', true), array('E', 'I', 'H', 'Q')));
		switch($choice) {
			case 'E':
				$this->Extract->execute();
			break;
			case 'I':
				$this->initdb();
			break;
			case 'H':
				$this->help();
			break;
			case 'Q':
				exit(0);
			break;
			default:
				$this->out(__('You have made an invalid selection. Please choose a command to execute by entering E, I, H, or Q.', true));
		}
		$this->hr();
		$this->main();
	}
/**
 * Initialize I18N database.
 *
 * @access public
 */
	function initdb() {
		$this->Dispatch->args = array('schema', 'run', 'create', 'i18n');
		$this->Dispatch->dispatch();
	}
/**
 * Show help screen.
 *
 * @access public
 */
	function help() {
		$this->hr();
		$this->out(__('I18n Shell:', true));
		$this->hr();
		$this->out(__('I18n Shell initializes i18n database table for your application', true));
		$this->out(__('and generates .pot file(s) with translations.', true));
		$this->hr();
		$this->out(__('usage:', true));
		$this->out('   cake i18n help');
		$this->out('   cake i18n initdb [-datasource custom]');
		$this->out('');
		$this->hr();

		$this->Extract->help();
	}
}

?>