CodeIgniter:解析位于 javascript 中的动态语言字幕

The*_*ude 3 php translation codeigniter codeigniter-2

我有一个需要本地化的 javascript 代码,即。

function js_proc() {
    var some_data = 'this text needs to be translated dynamically at runtime';
}
Run Code Online (Sandbox Code Playgroud)

所以我重新写了这样:

function js_proc() {
    var some_data = <?php echo $this->lang->line('some_data_id'); ?>;
}
Run Code Online (Sandbox Code Playgroud)

在view中,我写了这样的js链接:

<script type="text/javascript" src="www.domain.com/codeigniter/get_js/file-1/"></script>
Run Code Online (Sandbox Code Playgroud)

它调用控制器中的函数 get_js()。这个想法是让 get_js() 函数读取 js 文件并翻译语言字符串......

要翻译的js字符串太多了,所以我不能every string作为变量传递。理想情况下,我想通过 codeigniter 语言文件来完成这项工作。

我的问题是:有没有办法解析 js 文件中的 php 部分并执行(=翻译)它们?IE。

class App extends CI_Controller
{
    function get_js {
        $content = file_get_contents($js_file);
        echo parse_php($content);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 5

根据语言文件的大小,允许 javascript 访问整个语言数组的快速方法可能是将数组加载到全局 javascript 数组中;

<script>
    var globalLang = <?php echo json_encode($this->lang->language); ?>;
</script>
Run Code Online (Sandbox Code Playgroud)

然后像这样在你的javascript中访问;

globalLang['some_lang_key']
Run Code Online (Sandbox Code Playgroud)