¿Cómo se configura el enlace de datos localizado con archivos JSON y vistas XML?

Tengo una página de inicio XMLView que contiene algunos mosaicos. Estos mosaicos se rellenan a partir de un archivo JSON. Los mosaicos tienen un atributo 'título' que requiere enlace de datos i18n.

Parte de la vista XML:

<TileContainer id="container" tiles="{/TileCollection}">
  <StandardTile
   icon="{icon}"
   title="{title}"
   press="onPress" />
</TileContainer>

Archivo JSON:

{
  "TileCollection" : [
      {
          "icon"   : "sap-icon://document-text",
          "title"  : "{i18n>foo}"
      }, 
      ... etc

La forma antigua en que realicé el enlace de datos fue directamente en la vista contitle="{i18n>foo}". Por supuesto, ahora tengo esencialmente dos capas de enlace de datos, una en el JSON para el i18n y otra en la vista para obtener el JSON (que obtiene el i18n).

Este también es mi Component.js donde configuré el modelo i18n.

sap.ui.core.UIComponent.extend("MYAPP.Component", {
  metadata: {
    rootView : "MYAPP.view.Home", //points to the default view

    config: {
      resourceBundle: "i18n/messageBundle.properties"
    },
    ... etc


  init: function(){
    sap.ui.core.UIComponent.prototype.init.apply(this, arguments);
    var mConfig = this.getMetadata().getConfig();

    var oRouter = this.getRouter();
    this.RouteHandler = new sap.m.routing.RouteMatchedHandler(oRouter);
    oRouter.register("router");
    oRouter.initialize();

    var sRootPath = jQuery.sap.getModulePath("MYAPP");
    var i18nModel = new sap.ui.model.resource.ResourceModel({
        bundleUrl : [sRootPath, mConfig.resourceBundle].join("/")
    });
    this.setModel(i18nModel, "i18n");
}

Esta pregunta surgió de la discusión sobre otra pregunta, por lo que puede haber más información para cualquier persona interesada.Enlazar

Respuestas a la pregunta(1)

Su respuesta a la pregunta