如何通过REST为Symfony2 / Doctrine2提供字段名称的翻译?

时间:2015-11-10 14:47:11

标签: rest symfony doctrine-orm

我们有一个基于Symfony2 / Doctrine2的FOSRestBundle(JMSSerializer)构建的后端。

我们的API,例如为某些实体提供以下内容:REST / JSON响应中的' valid_from' 2015-12-31'

我们的AngularJS前端使用此REST API,例如向用户呈现一些表格:

有效期:2015年12月31日

现在我想知道如何为映射设置中心/或可维护位置的最佳方式: 字段键的英文标签' valid_from'是'有效来自'

据我所知,Doctrine的所有可翻译扩展(如Gedmo Kpn等)都是翻译内容(例如' category' =' Product' in English and =' Produkt& #39;德语)但不是架构。

当然,我无法更改/调整字段键到语言,因为它是前端的标识符。

到目前为止我的想法:

  1. 在field_key,language_key和之间使用一些映射文件 在前端翻译。
  2. 这里的问题是前端需要了解很多,理想情况下,API的任何变化都可以由后端开发人员彻底完成。

    1. 在field_key,language_key和之间使用一些映射文件 在前端翻译。
    2. 当我们为我们的实体模型和JSMSerializer使用注释时,我需要为翻译信息打开一个全新的空间。听起来不太有说服力。

      1. 使用属性
      2. 创建自定义注释

        目前的想法是使用我的实体属性使用自定义注释(可以缓存并且可以作为一个JSON收集并提供给前端)。

        这意味着任何后端开发人员都可以在API更改后立即检查翻译密钥。

        类似的东西:

         @ORM\Column(name='product', type='string')
         @FieldNameTranslation([
              ['lng'=> 'de-DE'],['text']=>'Product'],
              ['lng'=> 'en-En'],['text']=>'Produkt'])
        

        另一个想法可能只是提供一些翻译密钥,如:

         @FieldNameTranslation(key='FIELD_PRODUCT')
        

        并使用Symfony的翻译组件并将内容包含在翻译yml文件中。

        你有什么看法?在课堂上有没有最好的'接近这个?

0 个答案:

没有答案