Question

J'ai donc regardé cette utilisation de la base libre API et moi avons été vraiment impressionnés par les traductions du nom qu'elle a trouvé.IE Rome, Roma, Rom, Rzym, Rooma, 로마, 罗马市.En effet, j'ai une base de données de plus de 5000 noms de lieux et j'aimerais beaucoup toutes les traductions françaises, allemandes ou coréennes de ces noms anglais.

Le problème est que j'ai passé environ deux heures à cliquer sur Freebase et que je n'ai trouvé aucun moyen d'obtenir une vue des noms de villes/emplacements dans une langue différente mappée à l'anglais.J'aimerais donc que quelqu'un qui comprend ce qu'est la base gratuite et comment elle est organisée puisse me fournir un lien vers cette vue que je pourrais théoriquement ensuite exporter.

De plus, je voulais juste partager cette question parce que je suis totalement impressionné par freebase et je pense que si les gens ne l'ont pas regardé, ils devraient le faire.

Était-ce utile?

La solution

La requête

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

renvoie pour chaque emplacement et chaque langue, le nom de cet emplacement dans cette langue.Les résultats sont organisés par langue.Par exemple, voici un très petit segment de la valeur de retour :

                    {
                      '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)'
                    },

Pour une solution sans programmation, copiez-collez ce qui suit dans un fichier HTML et ouvrez-le avec votre navigateur :

<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>

Bien entendu, cela n’inclura que les 10 premiers résultats.Augmentez la limite ci-dessus si vous en voulez plus.(Au fait, non seulement Freebase est cool, mais ce langage de création de modèles mjt l'est aussi !)

Autres conseils

Le lien que vous avez publié utilise mjt, un framework javascript conçu pour Freebase.

La requête qu'ils utilisent.

 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
   }])     

Où:qlang - est également la langue que vous souhaitez traduire.qname - est l'emplacement à interroger.

Pour obtenir le lien souhaité, vous aurez besoin du API, et vous pouvez convertir la requête ci-dessus en un lien qui renverra un objet JSON contenant la chaîne traduite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top