来自Ajax响应的客户端翻译

时间:2016-07-06 18:46:38

标签: php jquery ajax symfony octobercms

我正在使用10月份的CMS和Laravel,并且遇到客户端翻译问题,想知道你们是否有任何想法我是如何实现这一点的。

我正在使用Twig {{ 'String'|_ }}的前端翻译用于静态内容,还使用laravel翻译库,用于在{{'author.plugin::lang.type.string'|trans }}页面加载时插入内容的动态字符串。

除了在页面加载时动态插入字符串,我也在使用Ajax进行此客户端。例如,我有一个包含两个<select>类型的搜索表单,第二个<select>的值和名称取决于在第一个中选择的值。但是我不能简单地将javascript var = value放入像{{ ( 'author.plugin::lang.type.string.'|trans ~ value) }}这样的Twig,因为Twig是在服务器上执行的。如果有人能建议我如何处理这个问题,我将非常高兴。

Ajax代码示例

function getTipNeprem(){

 $.ajax({
     method: 'get',
     url: '/sitename/vrsta_neprem=' + $("#vrsta_neprem").val(),
     dataType: "json",
     success: function(data){

        var tipi_nepremicnin = $.parseJSON(data[0].tip_nepremicnine_{{activeLocale}});
        var select_input = $("#tip_neprem");

        $(select_input).find("option").remove();
        $(select_input).append("<option value=''> {{ 'Choose Type'|_ }} </option>");

        $.each( tipi_nepremicnin, function( key, value ) {
            $(select_input).append("<option value='" + value + "'>" + value + "</option>").removeAttr("disabled");
        });

     }
 });
}

问题是选项的值始终使用国内语言,因为它是用于搜索功能的数据库中列的名称。如果我在上面的例子中使用ajax代码,它将始终只对值和内容使用一种语言。<option value="string in domestic_language"> string in foreign language </option>

如果您对如何实现这一点有更好的了解,如果您能指出我正确的方向,我将很高兴。

0 个答案:

没有答案