2017-11-16 20 views
0

CodeIgniterにはデフォルトで言語クラスがあります。私は、すべての言語ファイルをCSV形式にエクスポートしたいと思います。ファイルの内容を解析して書き出すためのPHPスクリプトはありますか? サンプルファイルの内容:CodeIgniterで言語ファイルのコンテンツをCSVにエクスポートする方法は?

<?php 
$lang['Mymenu'] = "Mymenu"; 
$lang['AdminUser'] = "AdminUser"; 

application/language/english 
application/language/spanish ...etc 

答えて

0

が主旨からソリューション https://gist.github.com/timneutkens/19e58a00ff8af4663c6502a1d89990a4

そのためのおかげではなく解決策は適用されませんを得たように言語ファイルもフォルダ内に配置することができます再帰的言語ディレクトリのために。

ここで私は、修正版掲載しています:

<?php 
/** 
* PHP version 5.4 
* @category Export 
* @package Language 
* @author Tim Neutkens <[email protected]> 
* @license MIT <https://opensource.org/licenses/MIT> 
* @link  <weprovide.com> 
*/ 

define('ENVIRONMENT', 'production'); 
/** 
* Placeholder for base_url function 
* 
* @param string $path path part of url 
* 
* @return string 
*/ 
function base_url($path = '') 
{ 
    return '/'.$path; 
} 

/** 
* Placeholder for base_url function 
* 
* @param string $path path part of url 
* 
* @return string 
*/ 
function site_url($path = '') 
{ 
    return '/'.$path; 
} 

/** 
* Export csv to file location 
* 
* @param array $data csv data 
* @param string $location location to put file 
* 
* @return string 
*/ 
function export_csv($data = [], $location = '',$file_name) 
{ 
    // $file_name = 'export-lang-'.time().'.csv'; 
    $file_name = $file_name.'.csv'; 
    $file_path = $location.'/'.$file_name; 
    $file  = @fopen($file_path, 'w'); 

    fprintf($file, chr(0xEF).chr(0xBB).chr(0xBF)); 

    foreach ($data as $key => $value) { 
     fputcsv($file, [$key, $value]); 
    } 

    fclose($file); 

    return $file_path; 
} 

/** 
* Load language 
* 
* @param string $path path to language directory. 
* 
* @return array 
*/ 
function load_language($path = '') 
{ 
    // Loop through translations 
    /*$files = glob($path.'/*.php'); 
    foreach ($files as $filename) { 
     include_once $filename; 
    }*/ 

    $di = new RecursiveDirectoryIterator($path); 
    foreach (new RecursiveIteratorIterator($di) as $filename => $file) { 
    if(!is_dir($filename)) 
     include_once $filename; //echo $filename . ' - ' . $file->getSize() . ' bytes <br/>'; 
    } 

    return $lang; 
} 

$lang_array = array('arabic','chinese','english','french','german','italian','japanese','korean','polish','portuguese','russian','spanish','turkish','vietnam'); // List of language folders 
$i=1; 
$file_arr = array(); 
$lang1 = $lang2 = $lang3 = $lang4 = $lang5 = $lang6 = $lang7 = $lang8 = $lang9 = $lang10 = $lang11 = $lang12 = $lang13 = $lang14 = '' ; 
foreach ($lang_array as $language) { 

    ${"lang" . $i} = load_language('application/language/'.$language); 
    export_csv(${"lang" . $i} , '/xampp/htdocs/CodeIginiter/language',$language); 
    // Lang gets filled by the above includes 
    $i++; 
} 

をCodeIgniterののルートディレクトリにファイルを配置し、実行します。 CSVファイルがダウンロードされ、簡単にエクセルにエクスポートして、言語翻訳に使用することができます。

+0

知識を共有したいだけです! – Nadeshwaran

関連する問題