Blame view

framework/tasks/i18nTextCollectorTask.php 1.43 KB
0084d336   Administrator   Importers CRUD
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
  <?php
  /**
   * @package framework
   * @subpackage tasks
   */
  class i18nTextCollectorTask extends BuildTask {
  	
  	protected $title = "i18n Textcollector Task";
  	
  	protected $description = "
  		Traverses through files in order to collect the 'entity master tables'
  		stored in each module.
  
  		Parameters:
  		- locale: Sets default locale
  		- writer: Custom writer class (defaults to i18nTextCollector_Writer_RailsYaml)
  		- module: One or more modules to limit collection (comma-separated)
  		- merge: Merge new strings with existing ones already defined in language files (default: FALSE)
  	";
  	
  	public function init() {
  		parent::init();
  		
  		$canAccess = (Director::isDev() || Director::is_cli() || Permission::check("ADMIN"));
  		if(!$canAccess) return Security::permissionFailure($this);
  	}
  	
  	/**
  	 * This is the main method to build the master string tables with the original strings.
  	 * It will search for existent modules that use the i18n feature, parse the _t() calls
  	 * and write the resultant files in the lang folder of each module.
  	 * 
  	 * @uses DataObject->collectI18nStatics()
  	 */	
  	public function run($request) {
  		increase_time_limit_to();
  		$c = new i18nTextCollector($request->getVar('locale'));
  		$writer = $request->getVar('writer');
  		if($writer) $c->setWriter(new $writer());
  		$restrictModules = ($request->getVar('module')) ? explode(',', $request->getVar('module')) : null;
  		return $c->run($restrictModules, (bool)$request->getVar('merge'));
  	}
  }