我已经下载了令人惊叹的iLib Javascript I18N库的当前版本(11.0),用于解析国际地址。不幸的是,我无法使用它来解决问题。文档说要加载iliball.js,它不在Github上的文件分发或列表中。尝试使用js / assemble / ilib-full-compiled.js,我能够:
% js
> var module = require("./ilib-full-compiled.js")
> module.ilib.getVersion()
'11.0.006'
但是模块中没有定义地址:
> module.Address("1234 Main Street\nDenver CO")
TypeError: Object #<Object> has no method 'Address'
at repl:1:10
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.EventEmitter.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
,类似于module.ilib.Address。
此外,我找不到允许我创建自己的汇编库的“jsa”工具。此外,尝试从iLib源构建时会产生大量错误。
这不是很难用的。我在这里错过了什么? (我没有声誉点来创建“ilib”标签,所以我希望这会引起与项目有关的人的注意。)
答案 0 :(得分:0)
我不确定这是否适用于Go / Otto,但是在nodejs上,您可以通过使用require访问它来获取ilib内部的一个类。基本上,添加&#34; ilib / lib /&#34; +获取它的类名:
> var ilib = require("ilib");
> var Address = require("ilib/lib/Address");
> var add = new Address("1234 Main Street, Denver CO 80202");
> add
{ sync: true,
loadParams: {},
locale:
{ language: 'en',
region: 'US',
script: undefined,
variant: undefined,
spec: 'en-US' },
lines: undefined,
country: undefined,
countryCode: 'US',
info:
{ formats:
{ default: '{streetAddress}\n{locality} {region} {postalCode}\n{country}',
nocountry: '{streetAddress}\n{locality} {region} {postalCode}' },
startAt: 'end',
fields: [ [Object], [Object], [Object] ] },
compare: [ [Function: Function] ],
postalCode: '80202',
region: 'CO',
locality: 'Denver',
streetAddress: '1234 Main Street' }
或者,require中返回的对象将包含一个Address类,但是你应该使用&#34; new&#34;用它来创建一个新实例:
var module = require("ilib");
new module.Address("1234 Main Street\nDenver CO");
生成的实例上有几个方法以及解析后的属性。
关于ilib维基的更多细节:https://sourceforge.net/p/i18nlib/wiki/New%20Modularization%20Support/
至于npm,当你在本地而不是全局安装时,它会找到node_modules而不需要设置你的路径。
要组装自己的ilib,首先需要安装一些东西:
一旦他们在路径中,滚动你自己的ilib版本应该更顺利。 Jsa是一个基于java的工具,源代码在ilib中。 Ant首先编译它,然后用它来组装ilib。 (有一天我会为nodejs重写它。)