Pregunta

Así que he mirado este uso del base libre API y quedé realmente impresionado con las traducciones del nombre que encontró.Es decir, Roma, Roma, Rom, Rzym, Rooma, 로마, 罗马市.Esto se debe a que tengo una base de datos de más de 5000 nombres de ubicaciones y me gustaría mucho todas las traducciones al francés, alemán o coreano de estos nombres en inglés.

El problema es que pasé aproximadamente dos horas haciendo clic en la base libre y no pude encontrar ninguna manera de obtener una vista de los nombres de ciudades/ubicaciones en un idioma diferente asignado al inglés.Así que me encantaría que alguien que entienda qué es la base libre y cómo está organizada pudiera conseguirme un enlace a esa vista que, en teoría, luego podría exportar.

Además, solo quería compartir esta pregunta porque estoy totalmente impresionado con la base libre y creo que si la gente no lo ha visto, debería hacerlo.

¿Fue útil?

Solución

La consulta

[{
     limit: 100,
     type: '/location/location',
     name: [{
         value: null,
         lang: {
             name: {
                 value: null,
                 lang: '/lang/en',
             },
         }
     }],
}];

devuelve para cada ubicación y cada idioma, el nombre de esa ubicación en ese idioma.Los resultados están organizados por idioma.Por ejemplo, aquí hay un muy pequeño segmento del valor de retorno:

                    {
                      'lang': {
                                  'name': {
                                              'lang': '/lang/en',
                                              'value': 'Russian'
                                            }
                                },
                      'value': 'Сан-Франциско'
                    },
                    {
                      'lang': {
                                  'name': {
                                              'lang': '/lang/en',
                                              'value': 'Swedish'
                                            }
                                },
                      'value': 'San Francisco'
                    },
                    {
                      'lang': {
                                  'name': {
                                              'lang': '/lang/en',
                                              'value': 'Portuguese'
                                            }
                                },
                      'value': 'São Francisco (Califórnia)'
                    },

Para una solución sin programación, copie y pegue lo siguiente en un archivo HTML y ábralo con su navegador:

<html><head>
<script type="text/javascript" src="http://mjtemplate.org/dist/mjt-0.6/mjt.js"></script>
</head>
<body onload="mjt.run()">
<div mjt.task="q">
  mjt.freebase.MqlRead([{
    limit: 10,
    type: '/location/location',
    name: [{
      value:null,
        lang:{
          name:{
            value:null,
            lang:'/lang/en',
          },
        }
    }],
  }])     
</div>

<table><tr mjt.for="topic in q.result"><td>
<table><tr mjt.for="(var rowi = 0; rowi &lt; topic.name.length; rowi++)"
  mjt.if="rowi &lt; topic.name.length" style="padding-left:2em"><td>
  <pre mjt.script="">
    var name = topic.name[rowi];
  </pre>
  ${(name.lang['q:name']||name.lang.name).value}:
</td><td>$name.value</td></tr></table></td></tr></table></body></html>

Por supuesto, eso sólo incluirá los primeros 10 resultados.Sube el límite anterior si quieres más.(Por cierto, Freebase no solo es genial, ¡también lo es este lenguaje de plantillas mjt!)

Otros consejos

El enlace que publicaste utiliza mjt, un marco de JavaScript diseñado para Freebase.

La consulta que utilizan.

 mjt.freebase.MqlRead([{
     limit: 100,
     id:qid,
     /* allow fuzzy matches in the value for more results... */
     /* 'q:name': {'value~=': qname, value:null, lang: '/lang/'+qlang}, */
     'q:name': {value: qname, lang: '/lang/'+qlang},

     type: '/common/topic',
     name: [{
         value:null,
         lang:{
             id:null,
             name:{
                 value:null,
                 lang:'/lang/en',
                 optional:true
             },
             'q:name':{
                 value:null,
                 lang:'/lang/'+qlang,
                 optional:true
             }
         }
     }],
     article: [{id:null, limit:1}],
     image: [{id:null, limit:1, optional:true}],
     creator: null,
     timestamp:null
   }])     

Dónde:qlang: también es el idioma que deseas traducir.qname: es la ubicación a consultar.

Para obtener el enlace que desea, necesitará el API, y puede convertir la consulta anterior en un enlace que devolverá un objeto JSON que contiene la cadena traducida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top