默认情况下,CodeIgniter具有语言类。我想将所有语言文件导出为CSV格式。是否有任何PHP脚本可用于解析和导出文件内容? 示例文件内容:
<?php
$lang['Mymenu'] = "Mymenu";
$lang['AdminUser'] = "AdminUser";
语言文件也可以放在文件夹中,如
application/language/english
application/language/spanish ...etc
答案 0 :(得分:0)
从要点中得到解决方案 https://gist.github.com/timneutkens/19e58a00ff8af4663c6502a1d89990a4
感谢您,但该解决方案不适用于递归语言目录。
我在这里发布修改后的版本:
<?php
/**
* PHP version 5.4
* @category Export
* @package Language
* @author Tim Neutkens <tim@weprovide.com>
* @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文件,可以轻松导出到Excel并用于语言翻译。