【问题标题】:Js templating contentjs模板内容
【发布时间】:2016-06-30 18:01:16
【问题描述】:

我在社交网络上工作,我决定用 Json 而不是 html 返回 ajax 响应,然后使用 Handlebars.js 或任何模板系统将其转换为 html,但问题如下: 我正在使用 Symfony 框架,所以我检查请求是否是 XHR,然后我返回一个 JsonResponse,但是我应该为 js 模板翻译做什么,当响应不是 XHR 时,我使用渲染一个 php/Twig 响应翻译组件,但是 js 模板呢? 一个例子:

<h1> Product Title: {{product.title}} </h1>
<a href="/edit-{{product.id}}">
    Edit Product
</a>

<h1> Titre de produit: {{product.title}} </h1>
<a href="/edit-{{product.id}}">
    Editer le produit
</a>

我想我不应该为不同的语言创建 100 倍的 js 模板,这将是不可维护的。像 Twitter 这样的网站如何操纵他们的 Json 响应?他们是否发送带有 Json 内容的翻译?

我很抱歉我的英语不好,我是法国人.. 谢谢!

【问题讨论】:

  • 给出一个包含每种语言内容的 JSON。这是一个例子here

标签: javascript php jquery json symfony


【解决方案1】:

如果你只想翻译你可以使用JsTranslationBundle .

您将能够使用翻译表单 javascript,或者 您可以添加将翻译文件转换为 json 对象并将其与响应一起发送。

use Symfony\Component\Yaml\Yaml;

$translationArray = Yaml::parse(file_get_contents('/path/to/tranlation/file.yml'));

// $resopnse is the array you convert it to JsonResopnse;

$response['translation'] = $translationArray;

【讨论】:

  • 谢谢你的回答,我知道这个包,但它加载了整个翻译,我猜第二个很好,但从性能方面来说,没关系吗?还是直接加载&发送html而不是Json&解析Yml翻译文件会更好?
  • 如果您使用相同的模板来呈现数据并更新它。你可以先发送模板然后用数据更新它
  • 我不明白,你能澄清一下吗?
  • 我将选择第二种方法并解耦特定控制器的翻译文件,以便它只包含所需的翻译。接受响应。谢谢!
  • 不客气,我的意思是:当您请求链接时,发送 [模板作为响应并缓存它] (symfony.com/doc/current/cookbook/templating/…) 然后通过 ajax 发送数据以使用数据更新模板。这是我的方法,但使用 angularjs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多