developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #268: createlangpackage.cmd.php

File createlangpackage.cmd.php, 2.5 KB (added by FlorianLB, 11 years ago)

Debut de travail sur la creation d'un package de traduction

Line 
1<?php
2/**
3* @package     jelix-scripts
4* @author      Florian Lonqueu-Brochard
5* @copyright   2011 Florian Lonqueu-Brochard
6* @link        http://www.jelix.org
7* @licence     GNU General Public Licence see LICENCE file or http://www.gnu.org/licenses/gpl.html
8*/
9
10
11class createlangpackageCommand extends JelixScriptCommand {
12
13    public  $name = 'createlangpackage';
14    public  $allowed_options=array();
15    public  $allowed_parameters=array('lang'=>true, 'model_lang'=>false);
16
17    public  $syntaxhelp = "LANG [MODEL_LANG]";
18    public  $help=array(
19        'fr'=>" ",
20
21        'en'=>" "
22    );
23
24
25    public function run(){
26
27        jxs_init_jelix_env();
28
29       $config = jIniFile::read(JELIX_APP_CONFIG_PATH.'defaultconfig.ini.php');
30
31        $model_lang = isset($this->_parameters['model_lang']) ? $this->_parameters['model_lang'] : $config['locale'];
32       
33        $package = JELIX_APP_VAR_PATH.$this->_parameters['lang'];
34        if(!file_exists($package))
35            mkdir($package, 0755);
36        else
37            throw new Exception("A package for this locale (".$this->_parameters['lang'].") already exists in ".JELIX_APP_VAR_PATH);
38   
39   
40   
41        $modulesPath = $config['modulesPath'];
42        $modulesPath = explode(',', $modulesPath);
43        $modulesDirs = array(); $m = array();
44        foreach($modulesPath as $mPath) {
45            if(preg_match('/app:([a-z-_]*)\//i', $mPath, $m)) {
46                array_push($modulesDirs, JELIX_APP_PATH.$m[1]);
47            }
48        }
49   
50           
51        foreach($modulesDirs as $dir){
52           
53            if($dir_r = opendir($dir))
54                while( FALSE !== ($fich = readdir($dir_r)) ) {
55                    if ($fich != "." && $fich != ".." && is_dir($dir.'/'.$fich)) {
56
57                        $locale_dir = $dir.'/'.$fich.'/locales/'.$model_lang;
58                        if(file_exists($locale_dir) && $locale_dir_r = opendir($locale_dir))
59                            while( FALSE !== ($fich_locale = readdir($locale_dir_r)) ) {
60                                $file = $locale_dir.'/'.$fich_locale;
61                                if ($fich_locale != "." && $fich_locale != ".." && strpos($fich_locale, '.properties')) {
62                                   
63                                    jFile::createDir($package.'/'.$fich);
64                                    copy($file, $package.'/'.$fich.'/'.$fich_locale);
65                                }
66                               
67                            }
68                    }
69                }
70        }
71           
72    }
73   
74
75   
76}
77