Skip to content

Commit

Permalink
Merge pull request #138 from iLib-js/development
Browse files Browse the repository at this point in the history
Merge to master to make a build for 14.0.0
  • Loading branch information
ehoogerbeets authored Oct 9, 2018
2 parents d56d175 + 3e39a70 commit 00464cf
Show file tree
Hide file tree
Showing 1,196 changed files with 19,835 additions and 18,317 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ build.properties
/js/package.json
js/.ant-targets-build.xml
**/localeinfo.json
**/*.stamp
/node_modules/*
js/node_modules/*
!/node_modules/nodeunit/
Expand Down
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
language: node_js
node_js:
- "4"
- "6"
- "8"
- "9"
env:
- CXX=g++-4.8
before_install:
Expand All @@ -15,6 +15,8 @@ install:
- sudo apt-get -y install qt55[QTPACKAGE]
- sudo apt-get -y install qmlscene qt5-default qtdeclarative5-dev qtbase5-dev
- npm install
- export PATH=$PWD/node_modules/.bin:$PATH
- export NODE_OPTIONS="--max-old-space-size=3072"
script:
# [Error] module QtQuick is not installed
- source /opt/qt55/bin/qt55-env.sh
Expand All @@ -34,3 +36,4 @@ branches:
- master
- development
sudo: required
dist: trusty
335 changes: 335 additions & 0 deletions Gruntfile.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.

version=13.3.1
version=14.0.0
27 changes: 17 additions & 10 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!--
build.xml - build everything in the ilib project
Copyright © 2012-2017, JEDLSoft
Copyright © 2012-2018, JEDLSoft
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -42,7 +42,7 @@ limitations under the License.
<attribute name="target"/>
<sequential>
<subant target="@{target}" >
<property name="dist" value="${build.dist}"/>
<property name="dist" value="${build.dist}"/>
<fileset dir="." includes="*/build.xml"/>
</subant>
</sequential>
Expand All @@ -57,22 +57,29 @@ limitations under the License.
<iterate target="export"/>
<iterate target="all"/>
</target>

<target name="clean" description="Remove all generated files to start from scratch">
<iterate target="clean"/>
<delete dir="${build.dist}"/>
<delete dir="${build.export}"/>
</target>

<target name="clean" description="Remove all generated files to start from scratch">
<delete dir="${build.dist}"/>
<delete dir="${build.export}"/>
<delete>
<fileset dir="${build.base}/docs/demo/scripts">
<include name="ilib-demo*"/>
<include name="ilib.*.js"/>
</fileset>
</delete>
<iterate target="clean"/>
</target>

<target name="dist" depends="all" description="Build the distribution package.">
<mkdir dir="${build.dist}" description="Dir to contain all the distribution outputs"/>
<mkdir dir="${build.export}" description="Dir to contain all the exported outputs"/>
<iterate target="export"/>
<copy file="README.md" todir="${build.export}/package" />
<zip destfile="${build.dist}/ilib-${version}.zip"
basedir="${build.export}"
includes="js/**,java/**,locale/**,qt/**"/>
<zip destfile="${build.dist}/ilib-${version}-doc.zip"
basedir="${build.export}/docs"/>
basedir="${build.export}/doc"/>
<zip destfile="${build.dist}/ilib-${version}-src.zip">
<zipfileset
dir="${build.export}/src"
Expand All @@ -87,7 +94,7 @@ limitations under the License.
<tar destfile="${build.dist}/ilib-${version}.tgz" compression="gzip"
basedir="${build.export}"
includes="js/**,java/**,locale/**,qt/**"/>
<tar destfile="${build.dist}/ilib-${version}-doc.tgz" compression="gzip" basedir="${build.export}/docs" />
<tar destfile="${build.dist}/ilib-${version}-doc.tgz" compression="gzip" basedir="${build.export}/doc" />
<tar destfile="${build.dist}/ilib-${version}-src.tgz" compression="gzip">
<fileset dir="${build.export}/src" includes="**"/>
<fileset dir="${build.export}" includes="tools/**"/>
Expand Down
135 changes: 79 additions & 56 deletions docs/Backlog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,34 @@

Here is a list of features in no particular order that may be developed for iLib in a future release. When it comes time to plan for the next release, the priority of each of the following will be re-evaluated and the top few will be scheduled for development.

* Support the BCP-47 standard for locale specs - DONE
* add script concept to locales, support ISO 15924 script IDs
* code to auto-detect the locale of the environment that iLib is running in - DONE
* perhaps part of the Locale class when you call the constructor with no arguments?
* check the environment, http headers if available, browser variables if available, etc.
* person names - DONE
* parsing
* formatting
* sort names (in German and Dutch, "von Beethoven" sorts under "B" instead of "V")
* phone numbers - DONE (Needs more locale data for many other countries)
* parsing
* formatting
* geolocation
* normalization
* matching
* letter dialing conversion (1-800-FLOWERS = 1-800-356-9377) (This part is not done)
* address parsing and formatting - DONE
* number parsing and formatting
* better support for Asian formats
* currency conversion via OANDA or other such services
* date parsing and recognition
* calendars
* Persian calendar - DONE
* Hebrew calendar - DONE
* Chinese lunar calendar
* Japanese Imperial
* phase of the moon calculations - DONE
* solstice and equinox calculations - DONE
* Webpack support
* Support sync and async operation (static and dynamic) versions
* Support assembled and unassembled versions
Expand All @@ -13,6 +41,9 @@ Here is a list of features in no particular order that may be developed for iLib
* Convert current ant scripts to grunt instead (except for the java directory, which stays on ant, and the qt directory which stays on qmake)
* Overall build should be controlled by grunt, and call ant or qmake as necessary
* String formatting
* For choice formats, support a syntax like "*2" for the match string to match any number that ends in 2. Needed to do proper plurals and ordinals, especially in Russian. - DONE
* alternate idea: maybe support regular expressions for the match strings?
* String truncation function to truncate a string between words where possible - DONE
* BreakIterator class. Detect breaks between
* glyphs
* words
Expand All @@ -28,6 +59,9 @@ Here is a list of features in no particular order that may be developed for iLib
* lower case
* depends on break iterator
* integrate choice formatting into replacement parameters in the regular format function?
* pseudo-translation updates
* support mapping to other scripts, such as RTL scripts or Asian scripts in order to test your app's support for those scripts - DONE
* support a "hash" before each string so you can identify when two strings that appear in the UI come from the same or different resource strings
* word syllabification
* word hyphenation
* depends on syllabification for many locales
Expand Down Expand Up @@ -59,6 +93,14 @@ Here is a list of features in no particular order that may be developed for iLib
* Chinese lunar calendar
* Japanese Imperial calendar
* Holiday calculation per locale
* jQuery plugin.
* iLib provides the date/locale information to configure the jQuery UI widgets
* date picker (calendar)
* IME
* validators for various data types such as person names, phone numbers, date/times, numbers, currency, percentages, etc.
* Holidays
* configuration per locale
* calculations of holiday dates in each year
* transliteration
* to base characters (de-accenting)
* to lower- or upper-case
Expand All @@ -68,22 +110,55 @@ Here is a list of features in no particular order that may be developed for iLib
* to sort key string
* from numeric pinyin to accented pinyin
* data is available on CLDR
* collation/sorting
* expand locale coverage
* write tool to convert CLDR data to ilib format
* resource bundle updates
* translation wrapper around Bing, Babelfish, Google in the ResBundle object
* support fetching translations dynamically via AJAX (perhaps requiring the jQuery integration?)
* charset object - DONE
* identification
* normalization of IANA charset names
* charset conversion
* recognition
* character functions - DONE
* script identification (given a character, tell what script it is used in)
* character normalization (Unicode normalizations, etc.) - DONE
* word functions
* given a word, tell which gender it is
* given a word, tell which case it is
* given a word, tell the plurality of it
* given a word, tell the politeness level (Japanese)
* integrate with Salesforce Grammaticus?
* collation/sorting - DONE (code is done, but needs more locale data support though)
* accent insensitive
* case insensitive
* support unique compressions
* sort key generation and sort key strings
* sort styles (eg. “dictionary sort” or “phonebook sort” in German)
* expand locale coverage
* write tool to convert CLDR data to ilib format
* Segmentation
* word- and sentence-segmenting
* line breaking and text wrapping
* Asian rules
* syllabification for Euro languages
* ellipsizing method in String class - DONE
* unit conversions (metric <-> imperial, celcius <-> fahrenheit) - DONE
* Locale-sensitive UI widgets
* Calendar picker (based on jquery)
* Time picker
* Address form
* Input Method Editors (IME)
* configurable 101 software keyboards
* KKC for Japanese
* Hangul for Korean
* Pinyin for Chinese (and others? Wubi?)
* More locale data
* List Formatter - DONE
* Alphabetic Index - DONE
* More locale data
* translations for strings to more locales - DONE
* date components and formats - DONE
* name parsing info
* paper sizes - DONE
* default timezone for the locale, and lists of timezones in the locale - DONE
* keyboard layouts
* collation configurations
* phonetic transliterations
Expand All @@ -106,55 +181,3 @@ Here are a proposed set of features to add to the assembly tool.
* Ability to read a set of HTML/PHP/JSP/etc. files for depends and data directives without including them into the output file. This allows you to assemble an iLib JS file with only the stuff that is needed by your web app.
* Rewrite in Javascript
* Make a simple ilib generator web page, similar to the jquery-ui theme generator, where you pick which classes you want and which locales you want, and it will build a copy of ilib for you with all dependencies satisfied


## Stuff From the Backlog That is Already Done

* Support the BCP-47 standard for locale specs
* add script concept to locales, support ISO 15924 script IDs
* code to auto-detect the locale of the environment that iLib is running in
* perhaps part of the Locale class when you call the constructor with no arguments?
* check the environment, http headers if available, browser variables if available, etc.
* person names
* parsing
* formatting
* sort names (in German and Dutch, "von Beethoven" sorts under "B" instead of "V")
* phone numbers
* parsing
* formatting
* geolocation
* normalization
* matching
* address parsing and formatting
* calendars
* Persian calendar
* Hebrew calendar
* phase of the moon calculations
* solstice and equinox calculations
* String formatting
* For choice formats, support a syntax like "*2" for the match string to match any number that ends in 2. Needed to do proper plurals and ordinals, especially in Russian.
* alternate idea: maybe support regular expressions for the match strings?
* String truncation function to truncate a string between words where possible
* pseudo-translation updates
* support mapping to other scripts, such as RTL scripts or Asian scripts in order to test your app's support for those scripts
* support a "hash" before each string so you can identify when two strings that appear in the UI come from the same or different resource strings
* ellipsizing method in String class
* charset object
* identification
* normalization of IANA charset names
* charset conversion
* recognition
* character functions
* script identification (given a character, tell what script it is used in)
* character normalization (Unicode normalizations, etc.)
* unit conversions (metric <-> imperial, celcius <-> fahrenheit)
* collation/sorting
* accent insensitive
* case insensitive
* support unique compressions
* sort key generation and sort key strings
* sort styles (eg. “dictionary sort” or “phonebook sort” in German)
* More locale data
* date components and formats
* paper sizes
* default timezone for the locale, and lists of timezones in the locale
2 changes: 1 addition & 1 deletion docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ You can get iLib in one of a few ways:

1. Download the already-assembled code from the [Files](builds) section of this project, unzip or untar, et voila
1. Get the project [from github at [Code]. The master branch is always has the last stable build, the development branch is the latest approved code, and features are developed in the feature branches.
1. Use npm to get the latest build: "npm install ilib"
1. Use npm to get the latest build for node: "npm install ilib"

## Including iLib ##

Expand Down
20 changes: 13 additions & 7 deletions docs/Installation.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# Installation #

iLib comes with a pre-assembled copy and a pre-assembled and pre-compiled copy of the iLib file called iliball.js and iliball-compiled.js. The compiled version is compiled with the Google Closure Compiler both to compress all the white space, comments, and symbols, and to verify syntax and data types.
iLib comes with pre-assembled and pre-compiled copies of the iLib file of various sizes (core, standard, & full).
The compiled versions are minified using uglify-js. This tool compresses all the white space, removes comments, and
makes private symbol names shorter, saving a significant amount of bytes.

These pre-made copies contain all iLib classes, and all the data for those classes for a number of popular locales. This might not be what you need. If you want a smaller version with a select subset of the classes, or if you need a different selection of locales, you will need to re-assemble your own copy of it. Fortunately, this is pretty easy to do with the assembly tool.
These pre-assembled copies of iLib contain different numbers of the iLib classes and the data for those classes
for a number of popular locales. However, this might be more than what your project needs. With the new webpack
support, you can create your own custom version of ilib with a selected subset of the classes
and the data only for those locales that your project needs. See the documentation for
(ilib-webpack-loader)[https://github.com/ilib-js/ilib-webpack-loader] for details on how to do this.

In order to run the assembly tool, you will need to install a few things and make them available in your path:
In order to build this project from scratch, you will need to install a few things and make them available in your path:

* A JDK. Either OpenJDK <http://openjdk.java.net> or the standard Sun JDK <http://www.oracle.com/technetwork/java/javase/downloads/> will work, version 1.6 or later
* Apache ant <http://ant.apache.org/bindownload.cgi>
* Nodejs 4.0 or later
* You must install the following package from npm: npm install uglify-js
* Nodejs 6.0 or later
* Run "npm install" in the root to get all of the development dependencies.
* Add "node_modules/.bin" to your shell PATH so that uglify and webpack, etc. are available
* Optionally, if you are interested in the Qt support, install Qt 5.9.0 or later. The Qt support is not built by default.

iLib comes with everything else needed to assemble your own copy of it.

See the [iLib 1.0 Tutorial](iLib1.0JSTutorial.pdf) for more information on how to run the assembly tool.
11 changes: 9 additions & 2 deletions docs/QtTest.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,18 @@ You might need to install package below:
sudo apt-get install libglu1-mesa-dev
~~~~~

2. When you faced an error as below,
2. When you faced errors as below,


~~~~
/bin/qmlscene: relocation error: symbol _ZN10QQmlEngine4exitEi, version Qt_5 not defined in file libQt5Qml.so.5 with link time reference
~~~~
You might need to check `LD_LIBRARY_PATH`
~~~~
Failed to load platform plugin ”xcb“
~~~~

You might need to check `LD_LIBRARY_PATH`.
I've set that option in `~/.bashrc file`.
~~~~
export LD_LIBRARY_PATH=/home/goun/Qt5.9.0/5.9/gcc_64/lib
~~~~
Expand Down
31 changes: 30 additions & 1 deletion docs/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,29 @@
Release Notes for Version 14
============================

Build 001
-------
Published as version 14.0.0

New Features:
* Webpack support
* Pre-assembled builds of ilib now use webpack for bundling
* The assembly tool is now grandfathered
* The compiled versions of the pre-assembled files are minified with uglify-js
* You may use ilib in your own webpacked projects (in React or otherwise) using the
new ilib-webpack-loader and ilib-webpack-plugin.
* See the documentation in [the ilib-webpack-loader documentation](https://github.com/ilib-js/ilib-webpack-loader)
for more details on how to use the new webpack support
* Requires some changes in your code to include the right file names and/or to modify
your webpack.config.js to include ilib dynamically
* Nodejs versions less than 6 are no longer supported, as webpack does not work with them
* Grunt support
* Support iLib build not to using ant
* Grunt task can do iLib build, running unittest, and creat jsdoc

Bug Fixes


Release Notes for Version 13
============================

Expand All @@ -17,9 +43,12 @@ Published as version 13.3.0

New Features:
* Update of the LocaleReference Test Website Documentation
* Added is-IS locale to a list.
* Added is-IS locale to the list.
* Implemented way of publishing date automatically instead of manual fixing.
* Updated Name of the Day and Months part. If normal and standAlone are different, It displays both.
* Updated to work properly run test cases on QT/QML environment.
* Imeplemented simple version of nodeunit library to work in QT/QML environment.
* Confirmed that all of iLib cases are passed in QT 5.7 version.
* Modified ilib.getTimeZone() to find the time zone from the Intl object if it is available. If not, it falls back
to the previous behaviour of checking environment variables.
* Added AddressFmt.getFormatInfo() method for returning info that a UI would need to construct an address input form
Expand Down
Loading

0 comments on commit 00464cf

Please sign in to comment.