我可以从 freebase.com 导出地名翻译吗
-
09-06-2019 - |
题
解决方案
查询
[{
limit: 100,
type: '/location/location',
name: [{
value: null,
lang: {
name: {
value: null,
lang: '/lang/en',
},
}
}],
}];
对于每个位置和每种语言,返回该位置在该语言中的名称。结果按语言组织。例如,这里有一个 非常 返回值的一小部分:
{
'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)'
},
对于无需编程的解决方案,请将以下内容复制粘贴到 HTML 文件中,然后使用浏览器打开它:
<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 < topic.name.length; rowi++)"
mjt.if="rowi < 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>
当然,这仅包括前 10 个结果。如果您想要更多,请提高上述限制。(顺便说一句,不仅 Freebase 很酷,这种 mjt 模板语言也很酷!)
其他提示
您发布的链接使用 mjt,这是一个为 Freebase 设计的 JavaScript 框架。
他们使用的查询。
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
}])
在哪里:qlang - 也是您想要翻译的语言。qname - 是要查询的位置。
要获得您想要的链接,您需要 应用程序编程接口, ,您可以将上述查询转换为链接,该链接将返回包含翻译字符串的 JSON 对象。
不隶属于 StackOverflow