How to setup:
=============
-1. Checkout closure-library next to libphonenumber:
+1. Checkout closure-library, closure-compiler, closure-linter and python-gflags
+ next to libphonenumber:
e.g.
-svn checkout http://libphonenumber.googlecode.com/svn/trunk/ ~/src/libphonenumber
-svn checkout http://closure-library.googlecode.com/svn/trunk/ ~/src/closure-library
+git clone https://github.com/googlei18n/libphonenumber/
+git clone https://github.com/google/closure-library/
+git clone https://github.com/google/closure-compiler.git
+svn checkout http://closure-linter.googlecode.com/svn/trunk/ ~/src/closure-linter
+svn checkout http://python-gflags.googlecode.com/svn/trunk/ ~/src/python-gflags
-(Or change the path of the <script src=""> in the html pages to point to
-wherever base.js is located.)
+(If you don't checkout the dependencies next to libphonenumber:
+a. change the path of the <script src=""> in the html pages to point to wherever
+ base.js is located
+b. update javascript/build.xml with the correct paths)
2. Run the unit tests to make sure everything is working. Open the following
pages with your web browser:
3. Run the demo: javascript/i18n/phonenumbers/demo.html
+How to compile:
+===============
+1. Build Closure's compiler.jar:
+
+e.g.
+ant -f ~/src/closure-compiler/build.xml
+
+2. Compile the demo.js and all its dependencies to one file: demo-compiled.js:
+
+ant -f javascript/build.xml compile-demo
+
+3. Run the compiled demo: javascript/i18n/phonenumbers/demo-compiled.html
+
+
+How to use:
+===========
+To use and compile the library in your own project, use the
+javascript/i18n/phonenumbers/demo.js as an example. You will need to
+goog.exportSymbol all the methods you use in your html so that the compiler
+won't rename them. You can then invoke the compiler similarly to how the
+compile-demo ant target in javascript/build.xml invokes it.
+
+
How to update:
==============
-The JavaScript library is ported from the Java implementation (revision 421).
+The JavaScript library is ported from the Java implementation (revision 536).
When the Java project gets updated follow these steps to update the JavaScript
project:
mvn -f tools/java/java-build/pom.xml package
2. If the phone number metadata in the XML format has changed
- (resources/PhoneNumberMetaData.xml)
+ (resources/PhoneNumberMetadata.xml)
run the following commands to regenerate metadata.js and
metadatafortesting.js:
PhoneNumberUtilTest.java => phonenumberutil_test.js
AsYouTypeFormatterTest.java => asyoutypeformatter_test.js
+4. Run the Closure Compiler to get your changes syntax and type checked.
+ This will also generate demo-compiled.js used by demo-compiler.html
+ (TODO: Use target "compile" rather than "compile-demo" once
+ visibility issues for getExtractedNationalPrefix_ have been resolved):
+
+ ant -f javascript/build.xml compile-demo
+
+5. Run the Closure Linter to lint the JavaScript files:
+
+ ant -f javascript/build.xml lint
+
TODO:
=====
Port offline phone number geocoder.
Enable PhoneNumberUtil to handle all digits, rather than a subset
(JavaScript has no equivalent to the Java Character.digit).
-Port ShortNumberUtil.
+Port ShortNumberInfo.