aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTyler <[email protected]>2018-10-20 19:52:42 -0700
committerTyler <[email protected]>2018-10-20 19:52:42 -0700
commit7ded5dd46270454f7d6c0417c8ea406c7113feb1 (patch)
tree36181b5ff594a4e536fbecbe12da11e762b99029 /lib
parent031ad231ba6e88e8c5f40c5a8b62d2faa3fb7b61 (diff)
downloadfaker-7ded5dd46270454f7d6c0417c8ea406c7113feb1.tar.xz
faker-7ded5dd46270454f7d6c0417c8ea406c7113feb1.zip
merge with master
Diffstat (limited to 'lib')
-rw-r--r--lib/address.js169
-rw-r--r--lib/date.js30
-rw-r--r--lib/fake.js3
-rw-r--r--lib/finance.js4
-rw-r--r--lib/git.js87
-rw-r--r--lib/helpers.js3
-rw-r--r--lib/image.js10
-rw-r--r--lib/index.js9
-rw-r--r--lib/locales.js4
-rw-r--r--lib/locales/af_ZA/address/default_country.js3
-rw-r--r--lib/locales/af_ZA/address/index.js4
-rw-r--r--lib/locales/af_ZA/address/postcode.js4
-rw-r--r--lib/locales/af_ZA/cell_phone/formats.js8
-rw-r--r--lib/locales/af_ZA/cell_phone/index.js3
-rw-r--r--lib/locales/af_ZA/company/index.js3
-rw-r--r--lib/locales/af_ZA/company/suffix.js5
-rw-r--r--lib/locales/af_ZA/index.js8
-rw-r--r--lib/locales/af_ZA/internet/domain_suffix.js7
-rw-r--r--lib/locales/af_ZA/internet/index.js3
-rw-r--r--lib/locales/af_ZA/name/female_first_name.js113
-rw-r--r--lib/locales/af_ZA/name/first_name.js227
-rw-r--r--lib/locales/af_ZA/name/index.js6
-rw-r--r--lib/locales/af_ZA/name/last_name.js167
-rw-r--r--lib/locales/af_ZA/name/male_first_name.js116
-rw-r--r--lib/locales/af_ZA/phone_number/formats.js11
-rw-r--r--lib/locales/af_ZA/phone_number/index.js3
-rw-r--r--lib/locales/ar/address/building_number.js5
-rw-r--r--lib/locales/ar/address/city.js3
-rw-r--r--lib/locales/ar/address/city_name.js144
-rw-r--r--lib/locales/ar/address/country.js244
-rw-r--r--lib/locales/ar/address/default_country.js3
-rw-r--r--lib/locales/ar/address/index.js12
-rw-r--r--lib/locales/ar/address/postcode.js4
-rw-r--r--lib/locales/ar/address/postcode_by_state.js4
-rw-r--r--lib/locales/ar/address/secondary_address.js4
-rw-r--r--lib/locales/ar/address/state.js52
-rw-r--r--lib/locales/ar/address/street_address.js3
-rw-r--r--lib/locales/ar/address/street_name.js4
-rw-r--r--lib/locales/ar/address/street_prefix.js10
-rw-r--r--lib/locales/ar/cell_phone/formats.js6
-rw-r--r--lib/locales/ar/cell_phone/index.js3
-rw-r--r--lib/locales/ar/commerce/color.js33
-rw-r--r--lib/locales/ar/commerce/department.js22
-rw-r--r--lib/locales/ar/commerce/index.js4
-rw-r--r--lib/locales/ar/index.js8
-rw-r--r--lib/locales/ar/phone_number/formats.js22
-rw-r--r--lib/locales/ar/phone_number/index.js3
-rw-r--r--lib/locales/de/name/last_name.js1
-rw-r--r--lib/locales/de_AT/name/last_name.js1
-rw-r--r--lib/locales/en/address/direction.js10
-rw-r--r--lib/locales/en/address/direction_abbr.js10
-rw-r--r--lib/locales/en/address/index.js2
-rw-r--r--lib/locales/en/company/bs_noun.js3
-rw-r--r--lib/locales/en/name/last_name.js1
-rw-r--r--lib/locales/en_CA/address/postcode.js19
-rw-r--r--lib/locales/en_IND/address/state.js21
-rw-r--r--lib/locales/en_IND/address/state_abbr.js21
-rw-r--r--lib/locales/en_US/address/postcode_by_state.js262
-rw-r--r--lib/locales/en_ZA/address/city.js3
-rw-r--r--lib/locales/en_ZA/address/city_prefix.js16
-rw-r--r--lib/locales/en_ZA/address/default_country.js6
-rw-r--r--lib/locales/en_ZA/address/index.js7
-rw-r--r--lib/locales/en_ZA/address/postcode.js4
-rw-r--r--lib/locales/en_ZA/address/state.js11
-rw-r--r--lib/locales/en_ZA/cell_phone/formats.js20
-rw-r--r--lib/locales/en_ZA/cell_phone/index.js3
-rw-r--r--lib/locales/en_ZA/company/index.js3
-rw-r--r--lib/locales/en_ZA/company/suffix.js5
-rw-r--r--lib/locales/en_ZA/index.js9
-rw-r--r--lib/locales/en_ZA/internet/domain_suffix.js7
-rw-r--r--lib/locales/en_ZA/internet/index.js3
-rw-r--r--lib/locales/en_ZA/name/female_first_name.js293
-rw-r--r--lib/locales/en_ZA/name/first_name.js552
-rw-r--r--lib/locales/en_ZA/name/index.js7
-rw-r--r--lib/locales/en_ZA/name/last_name.js243
-rw-r--r--lib/locales/en_ZA/name/male_first_name.js253
-rw-r--r--lib/locales/en_ZA/name/name.js4
-rw-r--r--lib/locales/en_ZA/phone_number/area_code.js40
-rw-r--r--lib/locales/en_ZA/phone_number/exchange_code.js285
-rw-r--r--lib/locales/en_ZA/phone_number/formats.js14
-rw-r--r--lib/locales/en_ZA/phone_number/index.js5
-rw-r--r--lib/locales/es/commerce/color.js11
-rw-r--r--lib/locales/es/commerce/department.js21
-rw-r--r--lib/locales/es/commerce/index.js5
-rw-r--r--lib/locales/es/commerce/product_name.js56
-rw-r--r--lib/locales/es/company/adjective.js6
-rw-r--r--lib/locales/es/index.js1
-rw-r--r--lib/locales/es/name/first_name.js12
-rw-r--r--lib/locales/es/name/last_name.js48
-rw-r--r--lib/locales/fr_CA/address/postcode.js19
-rw-r--r--lib/locales/fr_CH/address/city.js3
-rw-r--r--lib/locales/fr_CH/address/city_name.js175
-rw-r--r--lib/locales/fr_CH/address/country_code.js3
-rw-r--r--lib/locales/fr_CH/address/default_country.js3
-rw-r--r--lib/locales/fr_CH/address/index.js9
-rw-r--r--lib/locales/fr_CH/address/postcode.js11
-rw-r--r--lib/locales/fr_CH/address/state.js28
-rw-r--r--lib/locales/fr_CH/index.js6
-rw-r--r--lib/locales/fr_CH/internet/domain_suffix.js8
-rw-r--r--lib/locales/fr_CH/internet/index.js3
-rw-r--r--lib/locales/fr_CH/phone_number/formats.js17
-rw-r--r--lib/locales/fr_CH/phone_number/index.js3
-rw-r--r--lib/locales/id_ID/name/male_first_name.js8
-rw-r--r--lib/locales/pl/cell_phone/formats.js24
-rw-r--r--lib/locales/pt_PT/address/building_number.js6
-rw-r--r--lib/locales/pt_PT/address/city.js3
-rw-r--r--lib/locales/pt_PT/address/city_name.js153
-rw-r--r--lib/locales/pt_PT/address/city_prefix.js2
-rw-r--r--lib/locales/pt_PT/address/city_suffix.js2
-rw-r--r--lib/locales/pt_PT/address/country.js240
-rw-r--r--lib/locales/pt_PT/address/default_country.js3
-rw-r--r--lib/locales/pt_PT/address/direction.js10
-rw-r--r--lib/locales/pt_PT/address/index.js14
-rw-r--r--lib/locales/pt_PT/address/postcode.js3
-rw-r--r--lib/locales/pt_PT/address/street_address.js3
-rw-r--r--lib/locales/pt_PT/address/street_name.js7
-rw-r--r--lib/locales/pt_PT/address/street_prefix.js22
-rw-r--r--lib/locales/pt_PT/cell_phone/formats.js5
-rw-r--r--lib/locales/pt_PT/cell_phone/index.js3
-rw-r--r--lib/locales/pt_PT/commerce/color.js29
-rw-r--r--lib/locales/pt_PT/commerce/department.js24
-rw-r--r--lib/locales/pt_PT/commerce/index.js5
-rw-r--r--lib/locales/pt_PT/commerce/product_name.js60
-rw-r--r--lib/locales/pt_PT/date/index.js4
-rw-r--r--lib/locales/pt_PT/date/month.js31
-rw-r--r--lib/locales/pt_PT/date/weekday.js21
-rw-r--r--lib/locales/pt_PT/index.js10
-rw-r--r--lib/locales/pt_PT/internet/domain_suffix.js13
-rw-r--r--lib/locales/pt_PT/internet/free_email.js11
-rw-r--r--lib/locales/pt_PT/internet/index.js4
-rw-r--r--lib/locales/pt_PT/name/female_first_name.js95
-rw-r--r--lib/locales/pt_PT/name/female_prefix.js6
-rw-r--r--lib/locales/pt_PT/name/first_name.js190
-rw-r--r--lib/locales/pt_PT/name/index.js11
-rw-r--r--lib/locales/pt_PT/name/last_name.js103
-rw-r--r--lib/locales/pt_PT/name/male_first_name.js97
-rw-r--r--lib/locales/pt_PT/name/male_prefix.js6
-rw-r--r--lib/locales/pt_PT/name/name.js7
-rw-r--r--lib/locales/pt_PT/name/prefix.js4
-rw-r--r--lib/locales/pt_PT/name/suffix.js2
-rw-r--r--lib/locales/pt_PT/phone_number/formats.js6
-rw-r--r--lib/locales/pt_PT/phone_number/index.js3
-rw-r--r--lib/locales/ru/commerce/department.js3
-rw-r--r--lib/locales/ru/commerce/product_name.js19
-rw-r--r--lib/locales/ru/company/prefix.js1
-rw-r--r--lib/locales/ru/hacker/abbreviation.js3
-rw-r--r--lib/locales/ru/hacker/ingverb.js3
-rw-r--r--lib/locales/ru/hacker/noun.js3
-rw-r--r--lib/locales/ru/hacker/verb.js4
-rw-r--r--lib/locales/sv/name/first_name_women.js23
-rw-r--r--lib/locales/zu_ZA/address/default_country.js3
-rw-r--r--lib/locales/zu_ZA/address/index.js4
-rw-r--r--lib/locales/zu_ZA/address/postcode.js4
-rw-r--r--lib/locales/zu_ZA/cell_phone/formats.js8
-rw-r--r--lib/locales/zu_ZA/cell_phone/index.js3
-rw-r--r--lib/locales/zu_ZA/company/index.js3
-rw-r--r--lib/locales/zu_ZA/company/suffix.js5
-rw-r--r--lib/locales/zu_ZA/index.js8
-rw-r--r--lib/locales/zu_ZA/internet/domain_suffix.js7
-rw-r--r--lib/locales/zu_ZA/internet/index.js3
-rw-r--r--lib/locales/zu_ZA/name/female_first_name.js52
-rw-r--r--lib/locales/zu_ZA/name/first_name.js102
-rw-r--r--lib/locales/zu_ZA/name/index.js6
-rw-r--r--lib/locales/zu_ZA/name/last_name.js102
-rw-r--r--lib/locales/zu_ZA/name/male_first_name.js52
-rw-r--r--lib/locales/zu_ZA/phone_number/formats.js11
-rw-r--r--lib/locales/zu_ZA/phone_number/index.js3
-rw-r--r--lib/phone_number.js4
-rw-r--r--lib/random.js25
-rw-r--r--lib/unique.js26
170 files changed, 5761 insertions, 174 deletions
diff --git a/lib/address.js b/lib/address.js
index 0a6f0c5b..dec676e2 100644
--- a/lib/address.js
+++ b/lib/address.js
@@ -27,12 +27,30 @@ function Address (faker) {
}
/**
+ * Generates random zipcode from state abbreviation. If state abbreviation is
+ * not specified, a random zip code is generated according to the locale's zip format.
+ * Only works for locales with postcode_by_state definition. If a locale does not
+ * have a postcode_by_state definition, a random zip code is generated according
+ * to the locale's zip format.
+ *
+ * @method faker.address.zipCodeByState
+ * @param {String} state
+ */
+ this.zipCodeByState = function (state) {
+ var zipRange = faker.definitions.address.postcode_by_state[state];
+ if (zipRange) {
+ return faker.random.number(zipRange);
+ }
+ return this.zipCode();
+ }
+
+ /**
* Generates a random localized city name. The format string can contain any
* method provided by faker wrapped in `{{}}`, e.g. `{{name.firstName}}` in
* order to build the city name.
*
* If no format string is provided one of the following is randomly used:
- *
+ *
* * `{{address.cityPrefix}} {{name.firstName}}{{address.citySuffix}}`
* * `{{address.cityPrefix}} {{name.firstName}}`
* * `{{name.firstName}}{{address.citySuffix}}`
@@ -131,7 +149,7 @@ function Address (faker) {
this.streetSuffix = function () {
return faker.random.arrayElement(faker.definitions.address.street_suffix);
}
-
+
/**
* streetPrefix
*
@@ -207,11 +225,18 @@ function Address (faker) {
* @method faker.address.latitude
* @param {Double} max default is 90
* @param {Double} min default is -90
+ * @param {number} precision default is 4
*/
- this.latitude = function (max, min) {
- max = max || 90
- min = min || -90
- return faker.random.number({max: max, min:min, precision:0.0001}).toFixed(4);
+ this.latitude = function (max, min, precision) {
+ max = max || 90
+ min = min || -90
+ precision = precision || 4
+
+ return faker.random.number({
+ max: max,
+ min: min,
+ precision: parseFloat((0.0).toPrecision(precision) + '1')
+ }).toFixed(precision);
}
/**
@@ -220,15 +245,135 @@ function Address (faker) {
* @method faker.address.longitude
* @param {Double} max default is 180
* @param {Double} min default is -180
+ * @param {number} precision default is 4
+ */
+ this.longitude = function (max, min, precision) {
+ max = max || 180
+ min = min || -180
+ precision = precision || 4
+
+ return faker.random.number({
+ max: max,
+ min: min,
+ precision: parseFloat((0.0).toPrecision(precision) + '1')
+ }).toFixed(precision);
+ }
+
+ /**
+ * direction
+ *
+ * @method faker.address.direction
+ * @param {Boolean} useAbbr return direction abbreviation. defaults to false
*/
- this.longitude = function (max, min) {
- max = max || 180
- min = min || -180
- return faker.random.number({max: max, min:min, precision:0.0001}).toFixed(4);
+ this.direction = function (useAbbr) {
+ if (typeof useAbbr === 'undefined' || useAbbr === false) {
+ return faker.random.arrayElement(faker.definitions.address.direction);
+ }
+ return faker.random.arrayElement(faker.definitions.address.direction_abbr);
}
-
+
+ this.direction.schema = {
+ "description": "Generates a direction. Use optional useAbbr bool to return abbrevation",
+ "sampleResults": ["Northwest", "South", "SW", "E"]
+ };
+
+ /**
+ * cardinal direction
+ *
+ * @method faker.address.cardinalDirection
+ * @param {Boolean} useAbbr return direction abbreviation. defaults to false
+ */
+ this.cardinalDirection = function (useAbbr) {
+ if (typeof useAbbr === 'undefined' || useAbbr === false) {
+ return (
+ faker.random.arrayElement(faker.definitions.address.direction.slice(0, 4))
+ );
+ }
+ return (
+ faker.random.arrayElement(faker.definitions.address.direction_abbr.slice(0, 4))
+ );
+ }
+
+ this.cardinalDirection.schema = {
+ "description": "Generates a cardinal direction. Use optional useAbbr boolean to return abbrevation",
+ "sampleResults": ["North", "South", "E", "W"]
+ };
+
+ /**
+ * ordinal direction
+ *
+ * @method faker.address.ordinalDirection
+ * @param {Boolean} useAbbr return direction abbreviation. defaults to false
+ */
+ this.ordinalDirection = function (useAbbr) {
+ if (typeof useAbbr === 'undefined' || useAbbr === false) {
+ return (
+ faker.random.arrayElement(faker.definitions.address.direction.slice(4, 8))
+ );
+ }
+ return (
+ faker.random.arrayElement(faker.definitions.address.direction_abbr.slice(4, 8))
+ );
+ }
+
+ this.ordinalDirection.schema = {
+ "description": "Generates an ordinal direction. Use optional useAbbr boolean to return abbrevation",
+ "sampleResults": ["Northwest", "Southeast", "SW", "NE"]
+ };
+
+ this.nearbyGPSCoordinate = function(coordinate, radius, isMetric) {
+ function randomFloat(min, max) {
+ return Math.random() * (max-min) + min;
+ }
+ function degreesToRadians(degrees) {
+ return degrees * (Math.PI/180.0);
+ }
+ function radiansToDegrees(radians) {
+ return radians * (180.0/Math.PI);
+ }
+ function kilometersToMiles(miles) {
+ return miles * 0.621371;
+ }
+ function coordinateWithOffset(coordinate, bearing, distance, isMetric) {
+ var R = 6378.137; // Radius of the Earth (http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html)
+ var d = isMetric ? distance : kilometersToMiles(distance); // Distance in km
+
+ var lat1 = degreesToRadians(coordinate[0]); //Current lat point converted to radians
+ var lon1 = degreesToRadians(coordinate[1]); //Current long point converted to radians
+
+ var lat2 = Math.asin(Math.sin(lat1) * Math.cos(d/R) +
+ Math.cos(lat1) * Math.sin(d/R) * Math.cos(bearing));
+
+ var lon2 = lon1 + Math.atan2(
+ Math.sin(bearing) * Math.sin(d/R) * Math.cos(lat1),
+ Math.cos(d/R) - Math.sin(lat1) * Math.sin(lat2));
+
+ // Keep longitude in range [-180, 180]
+ if (lon2 > degreesToRadians(180)) {
+ lon2 = lon2 - degreesToRadians(360);
+ } else if (lon2 < degreesToRadians(-180)) {
+ lon2 = lon2 + degreesToRadians(360);
+ }
+
+ return [radiansToDegrees(lat2), radiansToDegrees(lon2)];
+ }
+
+ // If there is no coordinate, the best we can do is return a random GPS coordinate.
+ if (coordinate === undefined) {
+ return [this.latitude(), this.longitude()]
+ }
+ radius = radius || 10.0;
+ isMetric = isMetric || false;
+
+ // TODO: implement either a gaussian/uniform distribution of points in cicular region.
+ // Possibly include param to function that allows user to choose between distributions.
+
+ // This approach will likely result in a higher density of points near the center.
+ var randomCoord = coordinateWithOffset(coordinate, degreesToRadians(Math.random() * 360.0), radius, isMetric);
+ return [randomCoord[0].toFixed(4), randomCoord[1].toFixed(4)];
+ }
+
return this;
}
-
module.exports = Address;
diff --git a/lib/date.js b/lib/date.js
index 1977137b..081ddab5 100644
--- a/lib/date.js
+++ b/lib/date.js
@@ -12,7 +12,11 @@ var _Date = function (faker) {
* @param {date} refDate
*/
self.past = function (years, refDate) {
- var date = (refDate) ? new Date(Date.parse(refDate)) : new Date();
+ var date = new Date();
+ if (typeof refDate !== "undefined") {
+ date = new Date(Date.parse(refDate));
+ }
+
var range = {
min: 1000,
max: (years || 1) * 365 * 24 * 3600 * 1000
@@ -33,7 +37,11 @@ var _Date = function (faker) {
* @param {date} refDate
*/
self.future = function (years, refDate) {
- var date = (refDate) ? new Date(Date.parse(refDate)) : new Date();
+ var date = new Date();
+ if (typeof refDate !== "undefined") {
+ date = new Date(Date.parse(refDate));
+ }
+
var range = {
min: 1000,
max: (years || 1) * 365 * 24 * 3600 * 1000
@@ -67,9 +75,14 @@ var _Date = function (faker) {
*
* @method faker.date.recent
* @param {number} days
+ * @param {date} refDate
*/
- self.recent = function (days) {
+ self.recent = function (days, refDate) {
var date = new Date();
+ if (typeof refDate !== "undefined") {
+ date = new Date(Date.parse(refDate));
+ }
+
var range = {
min: 1000,
max: (days || 1) * 24 * 3600 * 1000
@@ -87,9 +100,14 @@ var _Date = function (faker) {
*
* @method faker.date.soon
* @param {number} days
+ * @param {date} refDate
*/
- self.soon = function (days) {
+ self.soon = function (days, refDate) {
var date = new Date();
+ if (typeof refDate !== "undefined") {
+ date = new Date(Date.parse(refDate));
+ }
+
var range = {
min: 1000,
max: (days || 1) * 24 * 3600 * 1000
@@ -145,9 +163,9 @@ var _Date = function (faker) {
return faker.random.arrayElement(source);
};
-
+
return self;
-
+
};
module['exports'] = _Date;
diff --git a/lib/fake.js b/lib/fake.js
index 7e24c854..186ca274 100644
--- a/lib/fake.js
+++ b/lib/fake.js
@@ -28,8 +28,7 @@ function Fake (faker) {
// if incoming str parameter is not provided, return error message
if (typeof str !== 'string' || str.length === 0) {
- res = 'string parameter is required!';
- return res;
+ throw new Error('string parameter is required!');
}
// find first matching {{ and }}
diff --git a/lib/finance.js b/lib/finance.js
index 268c74b3..e3506265 100644
--- a/lib/finance.js
+++ b/lib/finance.js
@@ -161,12 +161,12 @@ var Finance = function (faker) {
* @method faker.finance.bitcoinAddress
*/
self.bitcoinAddress = function () {
- var addressLength = faker.random.number({ min: 27, max: 34 });
+ var addressLength = faker.random.number({ min: 25, max: 34 });
var address = faker.random.arrayElement(['1', '3']);
for (var i = 0; i < addressLength - 1; i++)
- address += faker.random.alphaNumeric().toUpperCase();
+ address += faker.random.arrayElement('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'.split(''));
return address;
}
diff --git a/lib/git.js b/lib/git.js
new file mode 100644
index 00000000..d431ea2d
--- /dev/null
+++ b/lib/git.js
@@ -0,0 +1,87 @@
+/**
+ * @namespace faker.git
+ */
+
+var Git = function(faker) {
+ var self = this;
+ var f = faker.fake;
+
+ var hexChars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
+
+ /**
+ * branch
+ *
+ * @method faker.git.branch
+ */
+ self.branch = function() {
+ var noun = faker.hacker.noun().replace(' ', '-');
+ var verb = faker.hacker.verb().replace(' ', '-');
+ return noun + '-' + verb;
+ }
+
+ /**
+ * commitEntry
+ *
+ * @method faker.git.commitEntry
+ * @param {object} options
+ */
+ self.commitEntry = function(options) {
+ options = options || {};
+
+ var entry = 'commit {{git.commitSha}}\r\n';
+
+ if (options.merge || (faker.random.number({ min: 0, max: 4 }) === 0)) {
+ entry += 'Merge: {{git.shortSha}} {{git.shortSha}}\r\n';
+ }
+
+ entry += 'Author: {{name.firstName}} {{name.lastName}} <{{internet.email}}>\r\n';
+ entry += 'Date: ' + faker.date.recent().toString() + '\r\n';
+ entry += '\r\n\xa0\xa0\xa0\xa0{{git.commitMessage}}\r\n';
+
+ return f(entry);
+ };
+
+ /**
+ * commitMessage
+ *
+ * @method faker.git.commitMessage
+ */
+ self.commitMessage = function() {
+ var format = '{{hacker.verb}} {{hacker.adjective}} {{hacker.noun}}';
+ return f(format);
+ };
+
+ /**
+ * commitSha
+ *
+ * @method faker.git.commitSha
+ */
+ self.commitSha = function() {
+ var commit = "";
+
+ for (var i = 0; i < 40; i++) {
+ commit += faker.random.arrayElement(hexChars);
+ }
+
+ return commit;
+ };
+
+ /**
+ * shortSha
+ *
+ * @method faker.git.shortSha
+ */
+ self.shortSha = function() {
+ var shortSha = "";
+
+ for (var i = 0; i < 7; i++) {
+ shortSha += faker.random.arrayElement(hexChars);
+ }
+
+ return shortSha;
+ };
+
+ return self;
+}
+
+module['exports'] = Git;
diff --git a/lib/helpers.js b/lib/helpers.js
index 9bb78267..a602ede6 100644
--- a/lib/helpers.js
+++ b/lib/helpers.js
@@ -56,7 +56,8 @@ var Helpers = function (faker) {
};
/**
- * parses string for symbols (numbers or letters) and replaces them appropriately
+ * parses string for symbols (numbers or letters) and replaces them appropriately (# will be replaced with number,
+ * ? with letter and * will be replaced with number or letter)
*
* @method faker.helpers.replaceSymbols
* @param {string} string
diff --git a/lib/image.js b/lib/image.js
index dc512a68..b25b5895 100644
--- a/lib/image.js
+++ b/lib/image.js
@@ -201,13 +201,15 @@ var Image = function (faker) {
*
* @param {number} width
* @param {number} height
- * @method faker.image.dataurl
+ * @param {string} color
+ * @method faker.image.dataUri
*/
- self.dataUri = function (width, height) {
+ self.dataUri = function (width, height, color) {
+ color = color || 'grey';
+ var svgString = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" width="' + width + '" height="' + height + '"><rect width="100%" height="100%" fill="' + color + '"/><text x="' + width / 2 + '" y="' + height / 2 + '" font-size="20" alignment-baseline="middle" text-anchor="middle" fill="white">' + width + 'x' + height + '</text></svg>';
var rawPrefix = 'data:image/svg+xml;charset=UTF-8,';
- var svgString = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" width="' + width + '" height="' + height + '"> <rect width="100%" height="100%" fill="grey"/> <text x="0" y="20" font-size="20" text-anchor="start" fill="white">' + width + 'x' + height + '</text> </svg>';
return rawPrefix + encodeURIComponent(svgString);
};
}
-module["exports"] = Image; \ No newline at end of file
+module["exports"] = Image;
diff --git a/lib/index.js b/lib/index.js
index e1acb0f4..9de7ca10 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -99,12 +99,15 @@ function Faker (opts) {
var System = require('./system');
self.system = bindAll(new System(self));
+ var Git = require('./git');
+ self.git = bindAll(new Git(self));
+
var Vehicle = require('./vehicle');
self.vehicle = bindAll(new Vehicle(self));
var _definitions = {
- "name": ["first_name", "last_name", "prefix", "suffix", "gender", "title", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"],
- "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "postcode"],
+ "name": ["first_name", "last_name", "prefix", "suffix", "gender", "title", "male_prefix", "female_prefix", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"],
+ "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "postcode", "postcode_by_state", "direction", "direction_abbr"],
"company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"],
"lorem": ["words"],
"hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb", "phrase"],
@@ -113,7 +116,7 @@ function Faker (opts) {
"internet": ["avatar_uri", "domain_suffix", "free_email", "example_email", "password"],
"commerce": ["color", "department", "product_name", "price", "categories"],
"database": ["collation", "column", "engine", "type"],
- "system": ["mimeTypes"],
+ "system": ["mimeTypes", "directoryPaths"],
"date": ["month", "weekday"],
"vehicle": ["vehicle", "manufacturer", "model", "type", "fuel", "vin", "color"],
"title": "",
diff --git a/lib/locales.js b/lib/locales.js
index 98269df7..db99a245 100644
--- a/lib/locales.js
+++ b/lib/locales.js
@@ -1,4 +1,5 @@
exports['az'] = require('./locales/az');
+exports['ar'] = require('./locales/ar');
exports['cz'] = require('./locales/cz');
exports['de'] = require('./locales/de');
exports['de_AT'] = require('./locales/de_AT');
@@ -11,12 +12,14 @@ exports['en_GB'] = require('./locales/en_GB');
exports['en_IE'] = require('./locales/en_IE');
exports['en_IND'] = require('./locales/en_IND');
exports['en_US'] = require('./locales/en_US');
+exports['en_ZA'] = require('./locales/en_ZA');
exports['en_au_ocker'] = require('./locales/en_au_ocker');
exports['es'] = require('./locales/es');
exports['es_MX'] = require('./locales/es_MX');
exports['fa'] = require('./locales/fa');
exports['fr'] = require('./locales/fr');
exports['fr_CA'] = require('./locales/fr_CA');
+exports['fr_CH'] = require('./locales/fr_CH');
exports['ge'] = require('./locales/ge');
exports['id_ID'] = require('./locales/id_ID');
exports['it'] = require('./locales/it');
@@ -28,6 +31,7 @@ exports['nl_BE'] = require('./locales/nl_BE');
exports['nl'] = require('./locales/nl');
exports['pl'] = require('./locales/pl');
exports['pt_BR'] = require('./locales/pt_BR');
+exports['pt_PT'] = require('./locales/pt_PT');
exports['ro'] = require('./locales/ro');
exports['ru'] = require('./locales/ru');
exports['sk'] = require('./locales/sk');
diff --git a/lib/locales/af_ZA/address/default_country.js b/lib/locales/af_ZA/address/default_country.js
new file mode 100644
index 00000000..a31d7565
--- /dev/null
+++ b/lib/locales/af_ZA/address/default_country.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "South Africa"
+];
diff --git a/lib/locales/af_ZA/address/index.js b/lib/locales/af_ZA/address/index.js
new file mode 100644
index 00000000..44dff02a
--- /dev/null
+++ b/lib/locales/af_ZA/address/index.js
@@ -0,0 +1,4 @@
+var address = {};
+module['exports'] = address;
+address.default_country = require("./default_country");
+address.postcode = require("./postcode");
diff --git a/lib/locales/af_ZA/address/postcode.js b/lib/locales/af_ZA/address/postcode.js
new file mode 100644
index 00000000..a437640e
--- /dev/null
+++ b/lib/locales/af_ZA/address/postcode.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#####",
+ "####"
+];
diff --git a/lib/locales/af_ZA/cell_phone/formats.js b/lib/locales/af_ZA/cell_phone/formats.js
new file mode 100644
index 00000000..f0f561fd
--- /dev/null
+++ b/lib/locales/af_ZA/cell_phone/formats.js
@@ -0,0 +1,8 @@
+module["exports"] = [
+ "082 ### ####",
+ "084 ### ####",
+ "083 ### ####",
+ "065 ### ####",
+ "082#######",
+ "082 #######"
+];
diff --git a/lib/locales/af_ZA/cell_phone/index.js b/lib/locales/af_ZA/cell_phone/index.js
new file mode 100644
index 00000000..8de997ba
--- /dev/null
+++ b/lib/locales/af_ZA/cell_phone/index.js
@@ -0,0 +1,3 @@
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
diff --git a/lib/locales/af_ZA/company/index.js b/lib/locales/af_ZA/company/index.js
new file mode 100644
index 00000000..ddd41f55
--- /dev/null
+++ b/lib/locales/af_ZA/company/index.js
@@ -0,0 +1,3 @@
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
diff --git a/lib/locales/af_ZA/company/suffix.js b/lib/locales/af_ZA/company/suffix.js
new file mode 100644
index 00000000..f7163b89
--- /dev/null
+++ b/lib/locales/af_ZA/company/suffix.js
@@ -0,0 +1,5 @@
+module["exports"] = [
+ "Pty Ltd",
+ "Ltd",
+ "CC"
+];
diff --git a/lib/locales/af_ZA/index.js b/lib/locales/af_ZA/index.js
new file mode 100644
index 00000000..4385c355
--- /dev/null
+++ b/lib/locales/af_ZA/index.js
@@ -0,0 +1,8 @@
+var en_ZA = {};
+module['exports'] = en_ZA;
+en_ZA.title = "South Africa (Afrikaans)";
+en_ZA.address = require("./address");
+en_ZA.internet = require("./internet");
+en_ZA.phone_number = require("./phone_number");
+en_ZA.cell_phone = require("./cell_phone");
+en_ZA.company = require("./company");
diff --git a/lib/locales/af_ZA/internet/domain_suffix.js b/lib/locales/af_ZA/internet/domain_suffix.js
new file mode 100644
index 00000000..66ac6364
--- /dev/null
+++ b/lib/locales/af_ZA/internet/domain_suffix.js
@@ -0,0 +1,7 @@
+module["exports"] = [
+ "co.za",
+ "com",
+ "org.za",
+ "info",
+ "net.za"
+];
diff --git a/lib/locales/af_ZA/internet/index.js b/lib/locales/af_ZA/internet/index.js
new file mode 100644
index 00000000..abfa2480
--- /dev/null
+++ b/lib/locales/af_ZA/internet/index.js
@@ -0,0 +1,3 @@
+var internet = {};
+module['exports'] = internet;
+internet.domain_suffix = require("./domain_suffix");
diff --git a/lib/locales/af_ZA/name/female_first_name.js b/lib/locales/af_ZA/name/female_first_name.js
new file mode 100644
index 00000000..2a30f61f
--- /dev/null
+++ b/lib/locales/af_ZA/name/female_first_name.js
@@ -0,0 +1,113 @@
+module["exports"] = [
+ "Susan",
+ "Monica",
+ "Linda",
+ "Elsa",
+ "Susan",
+ "Margaret",
+ "Lisa",
+ "Karen",
+ "Helen",
+ "Sandra",
+ "Sara",
+ "Kimberly",
+ "Angelique",
+ "Melissa",
+ "Brenda",
+ "Anna",
+ "Annelie",
+ "Katryn",
+ "Amanda",
+ "Stefanie",
+ "Marie",
+ "Janet",
+ "Rosemarie",
+ "Nicoleen",
+ "Paula",
+ "Robin",
+ "Rita",
+ "Edna",
+ "Carmen",
+ "Cindy",
+ "Edith",
+ "Ethel",
+ "Ellen",
+ "Elaine",
+ "Charlotte",
+ "Pauline",
+ "Juanita",
+ "Anita",
+ "Rhonda",
+ "Hazel",
+ "Debbie",
+ "Clara",
+ "Lucille",
+ "Eleanor",
+ "Alicia",
+ "Michele",
+ "Geraldine",
+ "Erika",
+ "Bernice",
+ "Audrey",
+ "Yvonne",
+ "Annette",
+ "Renette",
+ "Ida",
+ "Melanie",
+ "Jolanda",
+ "Vanessa",
+ "Alma",
+ "Sue-Marie",
+ "Elsa",
+ "Carla",
+ "Rosemary",
+ "Wilma",
+ "Kristin",
+ "Natalie",
+ "Charlene",
+ "Melinda",
+ "Maureen",
+ "Tanya",
+ "Marlene",
+ "Heidi",
+ "Lydia",
+ "Vickie",
+ "Nina",
+ "Leona",
+ "Jenny",
+ "Sonia",
+ "Kristina",
+ "Erika",
+ "Katrina",
+ "Belinda",
+ "Natasha",
+ "Cecile",
+ "Angie",
+ "Lynda",
+ "Amelia",
+ "Monique",
+ "Kayla",
+ "Yvette",
+ "Olivia",
+ "Antoinette",
+ "Bridgette",
+ "Karla",
+ "Leticia",
+ "Krista",
+ "Robyn",
+ "Rosalie",
+ "Bernadette",
+ "Krystal",
+ "Nadine",
+ "Estelle",
+ "Lynette",
+ "Eloise",
+ "Jana",
+ "Kerry",
+ "Jenna",
+ "Tasha",
+ "Sonja",
+ "Elsa",
+ "Elisa",
+ "Kristie"
+ ]; \ No newline at end of file
diff --git a/lib/locales/af_ZA/name/first_name.js b/lib/locales/af_ZA/name/first_name.js
new file mode 100644
index 00000000..56f0345e
--- /dev/null
+++ b/lib/locales/af_ZA/name/first_name.js
@@ -0,0 +1,227 @@
+module["exports"] = [
+ "Susan",
+ "Monica",
+ "Linda",
+ "Elsa",
+ "Susan",
+ "Margaret",
+ "Lisa",
+ "Karen",
+ "Helen",
+ "Sandra",
+ "Sara",
+ "Kimberly",
+ "Angelique",
+ "Melissa",
+ "Brenda",
+ "Anna",
+ "Annelie",
+ "Katryn",
+ "Amanda",
+ "Stefanie",
+ "Marie",
+ "Janet",
+ "Rosemarie",
+ "Nicoleen",
+ "Paula",
+ "Robin",
+ "Rita",
+ "Edna",
+ "Carmen",
+ "Cindy",
+ "Edith",
+ "Ethel",
+ "Ellen",
+ "Elaine",
+ "Charlotte",
+ "Pauline",
+ "Juanita",
+ "Anita",
+ "Rhonda",
+ "Hazel",
+ "Debbie",
+ "Clara",
+ "Lucille",
+ "Eleanor",
+ "Alicia",
+ "Michele",
+ "Geraldine",
+ "Erika",
+ "Bernice",
+ "Audrey",
+ "Yvonne",
+ "Annette",
+ "Renette",
+ "Ida",
+ "Melanie",
+ "Jolanda",
+ "Vanessa",
+ "Alma",
+ "Sue-Marie",
+ "Elsa",
+ "Carla",
+ "Rosemarie",
+ "Wilma",
+ "Kristin",
+ "Natalie",
+ "Charlene",
+ "Melinda",
+ "Maureen",
+ "Tanya",
+ "Marlene",
+ "Heidi",
+ "Lydia",
+ "Vickie",
+ "Nina",
+ "Leona",
+ "Jenny",
+ "Sonia",
+ "Kristina",
+ "Erika",
+ "Katrina",
+ "Belinda",
+ "Natasha",
+ "Cecile",
+ "Angie",
+ "Lynda",
+ "Amelia",
+ "Monique",
+ "Kayla",
+ "Yvette",
+ "Olivia",
+ "Antoinette",
+ "Bridgette",
+ "Karla",
+ "Leticia",
+ "Krista",
+ "Robyn",
+ "Rosalie",
+ "Bernadette",
+ "Krystal",
+ "Nadine",
+ "Estelle",
+ "Lynette",
+ "Eloise",
+ "Jana",
+ "Kerry",
+ "Jenna",
+ "Tasha",
+ "Sonja",
+ "Elsa",
+ "Elisa",
+ "Kristie",
+ "Johan",
+ "Robert",
+ "Michael",
+ "William",
+ "Willem",
+ "David",
+ "Richard",
+ "Thomas",
+ "Charl",
+ "Christopher",
+ "Daniel",
+ "Dante",
+ "Paul",
+ "Mark",
+ "George",
+ "Kenneth",
+ "Steven",
+ "Edward",
+ "Ronald",
+ "Anthony",
+ "Albert",
+ "Kevin",
+ "Jaco",
+ "Jacobus",
+ "Mathuys",
+ "Frankie",
+ "Stephen",
+ "Andre",
+ "Raymond",
+ "Joshua",
+ "Dennis",
+ "Pieter",
+ "Henrie",
+ "Rigard",
+ "Riaan",
+ "Joe",
+ "Johannes",
+ "Hannes",
+ "Gerald",
+ "Gerhard",
+ "Willie",
+ "Roy",
+ "Adam",
+ "Harry",
+ "Wayne",
+ "Billy",
+ "Steve",
+ "Louis",
+ "Eugene",
+ "Russell",
+ "Bobbie",
+ "Victor",
+ "Martin",
+ "Ernest",
+ "Phillip",
+ "Craig",
+ "Alan",
+ "Shawn",
+ "Chris",
+ "Earl",
+ "Jimmy",
+ "Brian",
+ "Mike",
+ "Leonard",
+ "Dale",
+ "Allen",
+ "Vincent",
+ "Francois",
+ "Eddie",
+ "Alexander",
+ "Bernard",
+ "Markus",
+ "Micheal",
+ "Theo",
+ "Oscar",
+ "Derek",
+ "Wesley",
+ "Derrick",
+ "Herman",
+ "Rick",
+ "Ruben",
+ "Cecil",
+ "Andre",
+ "Roland",
+ "Harvey",
+ "Adriaan",
+ "Karl",
+ "Erik",
+ "Neil",
+ "Ian",
+ "Iwan",
+ "Julian",
+ "Nick",
+ "Shaun",
+ "Cameron",
+ "Wilbur",
+ "Rudolph",
+ "Rudy",
+ "Bennie",
+ "Lukas",
+ "Simon",
+ "Rufus",
+ "Hugo",
+ "Conrad",
+ "Tommie",
+ "Jan",
+ "Jacques",
+ "Morne",
+ "Vernon",
+ "Duanne",
+ "Theunis",
+ "Theuns",
+ "Wessel",
+ "Stephaans"
+];
diff --git a/lib/locales/af_ZA/name/index.js b/lib/locales/af_ZA/name/index.js
new file mode 100644
index 00000000..290e3cc2
--- /dev/null
+++ b/lib/locales/af_ZA/name/index.js
@@ -0,0 +1,6 @@
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.female_first_name = require("./female_first_name");
+name.first_name = require("./first_name");
+name.last_name = require("./last_name"); \ No newline at end of file
diff --git a/lib/locales/af_ZA/name/last_name.js b/lib/locales/af_ZA/name/last_name.js
new file mode 100644
index 00000000..27c13929
--- /dev/null
+++ b/lib/locales/af_ZA/name/last_name.js
@@ -0,0 +1,167 @@
+module["exports"] = [
+ "van de Merwe",
+ "Schoeman",
+ "Barnard",
+ "de Kock",
+ "Meintjies",
+ "le Roux",
+ "Koen",
+ "Morkel",
+ "Viljoen",
+ "Smit",
+ "Nel",
+ "Grobelaar",
+ "Oppenheimer",
+ "Castelyn",
+ "du Preez",
+ "Cronnje",
+ "Donald",
+ "Pringle",
+ "Snell",
+ "Burger",
+ "van Heerden",
+ "van de Heefer",
+ "Wessels",
+ "Eksteen",
+ "Kirsten",
+ "de Villiers",
+ "Olivier",
+ "Steyn",
+ "Kallis",
+ "Ackerman",
+ "Dippenaar",
+ "Strydon",
+ "Boje",
+ "Pretorius",
+ "Langeveldt",
+ "Botha",
+ "Duminy",
+ "Fuller",
+ "Philander",
+ "Daniels",
+ "Fichardt",
+ "van Zyl",
+ "de Bruyn",
+ "van der Bijl",
+ "Dyer",
+ "van Buuren",
+ "Boyes",
+ "Versfeld",
+ "Bisset",
+ "Castens",
+ "Louw",
+ "Powell",
+ "Snedden",
+ "van Renen",
+ "Myburg",
+ "Bredenkamp",
+ "Mellett",
+ "Hertzog",
+ "Theunissen",
+ "de Waal",
+ "Cloete",
+ "Krige",
+ "Melker",
+ "Loubser",
+ "Stegmann",
+ "Joubert",
+ "Luyt",
+ "Roos",
+ "Lombard",
+ "van der Hoff",
+ "Immelman",
+ "Els",
+ "Delaney",
+ "Strauss",
+ "Meyer",
+ "Pienaar",
+ "du Plessis",
+ "van Rooyen",
+ "Kruger",
+ "Mostert",
+ "Scholtz",
+ "Aucamp",
+ "Albertyn",
+ "Bosman",
+ "Bester",
+ "Truter",
+ "Prinsloo",
+ "van Niekerk",
+ "Zimmerman",
+ "Venter",
+ "van den Berg",
+ "de Wet",
+ "Marais",
+ "van Jaarsveld",
+ "Jordaan",
+ "Malan",
+ "Viviers",
+ "Myburgh",
+ "Hoffman",
+ "Bekker",
+ "Rossouw",
+ "Rens",
+ "Lochner",
+ "Hanekom",
+ "Schmidt",
+ "Bekker",
+ "Wentzel",
+ "van Zyl",
+ "Bezuidenhout",
+ "Cilliers",
+ "Truter",
+ "Naude",
+ "de Vos",
+ "Goosen",
+ "Durand",
+ "Potgieter",
+ "van Deventer",
+ "de Klerk",
+ "Spies",
+ "Snyman",
+ "Oosthuizen",
+ "Bosch",
+ "Vogel",
+ "Fourie",
+ "van Staden",
+ "Wagenaar",
+ "Wolmerans",
+ "Veldsman",
+ "Tromp",
+ "Serfontein",
+ "Claasen",
+ "Heunis",
+ "Visagie",
+ "Ferreira",
+ "Erasmus",
+ "Knoetze",
+ "Jansen van Rensburg",
+ "Styger",
+ "Roberts",
+ "Richter",
+ "Lotter",
+ "Swart",
+ "Badenhorst",
+ "Laubscher",
+ "Hattingh",
+ "Visser",
+ "Brink",
+ "Theron",
+ "Paulse",
+ "Basson",
+ "van der Westhuyzen",
+ "Gerber",
+ "Human",
+ "Uys",
+ "Hougaard",
+ "Steenkamp",
+ "Pieterse",
+ "Brits",
+ "Jantjies",
+ "Etzebeth",
+ "de Jager",
+ "Boshoff",
+ "Kriel",
+ "Vosloo",
+ "Carstens"
+];
diff --git a/lib/locales/af_ZA/name/male_first_name.js b/lib/locales/af_ZA/name/male_first_name.js
new file mode 100644
index 00000000..ad9f0bee
--- /dev/null
+++ b/lib/locales/af_ZA/name/male_first_name.js
@@ -0,0 +1,116 @@
+module["exports"] = [
+ "Johan",
+ "Robert",
+ "Michael",
+ "William",
+ "Willem",
+ "David",
+ "Richard",
+ "Thomas",
+ "Charl",
+ "Christopher",
+ "Daniel",
+ "Dante",
+ "Paul",
+ "Mark",
+ "George",
+ "Kenneth",
+ "Steven",
+ "Edward",
+ "Ronald",
+ "Anthony",
+ "Albert",
+ "Kevin",
+ "Jaco",
+ "Jacobus",
+ "Mathuys",
+ "Frankie",
+ "Stephen",
+ "Andre",
+ "Raymond",
+ "Joshua",
+ "Dennis",
+ "Pieter",
+ "Henrie",
+ "Rigard",
+ "Riaan",
+ "Joe",
+ "Johannes",
+ "Hannes",
+ "Gerald",
+ "Gerhard",
+ "Willie",
+ "Roy",
+ "Adam",
+ "Harry",
+ "Wayne",
+ "Billy",
+ "Steve",
+ "Louis",
+ "Eugene",
+ "Russell",
+ "Bobbie",
+ "Victor",
+ "Martin",
+ "Ernest",
+ "Phillip",
+ "Craig",
+ "Alan",
+ "Shawn",
+ "Chris",
+ "Earl",
+ "Jimmy",
+ "Brian",
+ "Mike",
+ "Leonard",
+ "Dale",
+ "Allen",
+ "Vincent",
+ "Francois",
+ "Eddie",
+ "Alexander",
+ "Bernard",
+ "Markus",
+ "Micheal",
+ "Theo",
+ "Oscar",
+ "Derek",
+ "Wesley",
+ "Derrick",
+ "Herman",
+ "Rick",
+ "Ruben",
+ "Cecil",
+ "Andre",
+ "Roland",
+ "Harvey",
+ "Adriaan",
+ "Karl",
+ "Erik",
+ "Neil",
+ "Ian",
+ "Iwan",
+ "Julian",
+ "Nick",
+ "Shaun",
+ "Cameron",
+ "Wilbur",
+ "Rudolph",
+ "Rudy",
+ "Bennie",
+ "Lukas",
+ "Simon",
+ "Rufus",
+ "Hugo",
+ "Conrad",
+ "Tommie",
+ "Jan",
+ "Jacques",
+ "Morne",
+ "Vernon",
+ "Duanne",
+ "Theunis",
+ "Theuns",
+ "Wessel",
+ "Stephaans"
+ ]; \ No newline at end of file
diff --git a/lib/locales/af_ZA/phone_number/formats.js b/lib/locales/af_ZA/phone_number/formats.js
new file mode 100644
index 00000000..e33e5cbc
--- /dev/null
+++ b/lib/locales/af_ZA/phone_number/formats.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "01# ### #####",
+ "02# ### #####",
+ "03# ### #####",
+ "04# ### #####",
+ "05# ### #####",
+ "0800 ### ###",
+ "0860 ### ###",
+ "01#########",
+ "01# ########",
+];
diff --git a/lib/locales/af_ZA/phone_number/index.js b/lib/locales/af_ZA/phone_number/index.js
new file mode 100644
index 00000000..8d35e011
--- /dev/null
+++ b/lib/locales/af_ZA/phone_number/index.js
@@ -0,0 +1,3 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
diff --git a/lib/locales/ar/address/building_number.js b/lib/locales/ar/address/building_number.js
new file mode 100644
index 00000000..76d63929
--- /dev/null
+++ b/lib/locales/ar/address/building_number.js
@@ -0,0 +1,5 @@
+module["exports"] = [
+ "#####",
+ "####",
+ "###"
+];
diff --git a/lib/locales/ar/address/city.js b/lib/locales/ar/address/city.js
new file mode 100644
index 00000000..d62eafb1
--- /dev/null
+++ b/lib/locales/ar/address/city.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{city_name}"
+];
diff --git a/lib/locales/ar/address/city_name.js b/lib/locales/ar/address/city_name.js
new file mode 100644
index 00000000..b096cdde
--- /dev/null
+++ b/lib/locales/ar/address/city_name.js
@@ -0,0 +1,144 @@
+module["exports"] = [
+ "مكة",
+ "المدينة",
+ "القاهرة",
+ "جدة",
+ "تونس",
+ "طرابلس",
+ "بيروت",
+ "الإسكندرية",
+ "بنغازي",
+ "صفاقس",
+ "مراكش",
+ "الدار البيضاء",
+ "غرناطة",
+ "فاس",
+ "وهران",
+ "الجزائر",
+ "الخرطوم",
+ "مقديشو",
+ "القدس",
+ "غزة",
+ "جنين",
+ "نابلس",
+ "دمشق",
+ "بغداد",
+ "البصرة",
+ "صلاح الدين",
+ "الكوفة",
+ "عمان",
+ "صنعاء",
+ "حضرموت",
+ "المنامة",
+ "صيدا",
+ "بنزرت",
+ "سوسة",
+ "نابل",
+ "الحمامات",
+ "جربة",
+ "حلب",
+ "الرياض",
+ "الدّمام",
+ "أبها",
+ "جازان",
+ "القطيف",
+ "الدرعية",
+ "عُنيزة",
+ "نجد",
+ "رابغ",
+ "دبي",
+ "العين",
+ "رأس الخيمة",
+ "أبو ظبي",
+ "عجمان",
+ "الفجيرة",
+ "الرويس",
+ "مصفح",
+ "دوز",
+ "السلع",
+ "الرحبة",
+ "الجهراء",
+ "الكويت",
+ "الفرْوانية",
+ "حَوَلِّـي",
+ "الأحمدي",
+ "الدوحة",
+ "الريان",
+ "دخان",
+ "الخور",
+ "أبو الظلوف",
+ "العريش",
+ "الغنيم",
+ "الغرية",
+ "الموصل",
+ "أربيل",
+ "نينوى",
+ "الأنبار",
+ "الحلة",
+ "سامراء",
+ "ذي قار",
+ "بابل",
+ "واسط",
+ "القادسية",
+ "العقبة",
+ "الكرك",
+ "إربد",
+ "عنجرة",
+ "المفرق",
+ "الفحيص",
+ "أريحا",
+ "يافا",
+ "عكا",
+ "رام الله",
+ "جنين",
+ "بيت لحم",
+ "الرملة",
+ "بيسان",
+ "صفد",
+ "قلقيلية",
+ "طولكرم",
+ "بيت حانون",
+ "صور",
+ "بعلبك",
+ "مرجعيون",
+ "عنجر",
+ "الخيام",
+ "الشرقية",
+ "حمص",
+ "اللاذقية",
+ "تدمر",
+ "حماة",
+ "طرسوس",
+ "بصرى",
+ "معرة النعمان",
+ "دير الزور",
+ "داريا",
+ "دوما",
+ "التل",
+ "إدلب",
+ "عدن",
+ "مأرب",
+ "إب",
+ "عمران",
+ "الشحر",
+ "البيضاء",
+ "بيحان",
+ "يريم",
+ "تريم",
+ "معبر",
+ "الضالع",
+ "بورسعيد",
+ "أسيوط",
+ "الأقصر",
+ "أسوان",
+ "العريش",
+ "المنيا",
+ "سوهاج",
+ "دمياط",
+ "قنا",
+ "سبك الأحد",
+ "نواكشوط",
+ "شمقيط",
+ "وادان",
+ "دورا"
+];
diff --git a/lib/locales/ar/address/country.js b/lib/locales/ar/address/country.js
new file mode 100644
index 00000000..18469d7f
--- /dev/null
+++ b/lib/locales/ar/address/country.js
@@ -0,0 +1,244 @@
+module["exports"] = [
+ "أفغانستان",
+ "ألبانيا",
+ "الجزائر",
+ "أمريكا ساماو",
+ "أندورا",
+ "أنجولا",
+ "أنجويلا",
+ "أنتاركتيكا",
+ "أنتيغوا وباربودا",
+ "الأرجنتين",
+ "أرمينيا",
+ "أروبا",
+ "أرستراليا",
+ "أستريا",
+ "أذرابيجان",
+ "بهماس",
+ "البحرين",
+ "بنغلادش",
+ "بربادوس",
+ "بلاروسيا",
+ "بلجيكا",
+ "بليز",
+ "بينين",
+ "برمودا",
+ "بوتان",
+ "بوليفيا",
+ "البوسنة والهرسك",
+ "بوتسوانا",
+ "جزيرة بوفيه",
+ "البرازيل",
+ "إقليم المحيط الهندي البريطاني",
+ "برونوي دار السلام",
+ "بلغاريا",
+ "بوركينا فاسو",
+ "بوروندي",
+ "كمبوديا",
+ "كاميرون",
+ "كندا",
+ "الرأس الأخضر",
+ "جزر كايمان",
+ "جمهورية إفريقيا الوسطى",
+ "التشاد",
+ "شيلي",
+ "الصين",
+ "جزيرة عيد الميلاد",
+ "جزر كوكوس",
+ "كولومبيا",
+ "Comoros",
+ "كونجو",
+ "جزر كوك",
+ "كوستا ريكا",
+ "ساحل العاج",
+ "كرواتيا",
+ "كوبا",
+ "قبرص",
+ "التشيك",
+ "دنمارك",
+ "جيبوتي",
+ "دومينيكا",
+ "جمهورية الدومينيكان",
+ "إكوادور",
+ "مصر",
+ "السلفادور",
+ "غينيا الاستوائية",
+ "إريتريا",
+ "إستونيا",
+ "أثيوبيا",
+ "جزر فارو",
+ "جزر فوكلاند",
+ "فيجي",
+ "فلندا",
+ "فرنست",
+ "غويانا الفرنسية",
+ "بولينزيا الفرنسية",
+ "أراض فرنسية جنوبية وأنتارتيكية",
+ "جابون",
+ "غمبيا",
+ "جورجيا",
+ "ألمانيا",
+ "غانا",
+ "جبل طارق",
+ "اليونان",
+ "الأرض الخضراء",
+ "غرينادا",
+ "غوادلوب",
+ "غوام",
+ "غواتيمالا",
+ "غيرنزي",
+ "غينيا",
+ "غينيا بيساو",
+ "غيانا",
+ "هايتي",
+ "جزيرة هيرد وجزر ماكدونالد",
+ "الفاتيكان",
+ "هندوراس",
+ "هونكونغ",
+ "هنقاريا",
+ "إسلاند",
+ "الهند",
+ "أندونيسيا",
+ "إيران",
+ "العراق",
+ "إيرلامدا",
+ "جزيرة مان",
+ "إيطاليا",
+ "جامايكا",
+ "اليابان",
+ "جيرزي",
+ "الأردن",
+ "كازاخستان",
+ "كنيا",
+ "كيريباتي",
+ "كوريا الشمالية",
+ "كوريا الجنوبية",
+ "الكويت",
+ "قيرغيزستان",
+ "لاوس",
+ "لتفيا",
+ "لبنان",
+ "ليسوتو",
+ "ليبيريا",
+ "ليبيا",
+ "ليختنشتاين",
+ "ليتيواتيا",
+ "ليكسمبورغ",
+ "ماكاو",
+ "مقدونيا",
+ "مدغشقر",
+ "ملاوي",
+ "ماليزيا",
+ "ملديف",
+ "مالي",
+ "مالطا",
+ "جزر مارشال",
+ "مارتينيك",
+ "موريتانيا",
+ "موريشيوس",
+ "مايوت",
+ "المكسيك",
+ "ولايات ميكرونيسيا المتحدة",
+ "مولدوفا",
+ "موناكو",
+ "منغوليا",
+ "مونتينيغرو",
+ "مونتسرات",
+ "المغرب",
+ "موزنبيق",
+ "ميانمار",
+ "ناميبيا",
+ "ناورو",
+ "نيبال",
+ "جزر الأنتيل الهولندية",
+ "هولاندا",
+ "كالودونيا الجديدة",
+ "زيلاندا الجديدة",
+ "نيكاراغوا",
+ "النيجر",
+ "نيجيريا",
+ "نييوي",
+ "جزيرة نورفولك",
+ "جزر ماريانا الشمالية",
+ "نورواي",
+ "عمان",
+ "باكستان",
+ "بالاو",
+ "فلسطين",
+ "بانما",
+ "بابوا غينيا الجديدة",
+ "باراغواي",
+ "بيرو",
+ "الفيليبين",
+ "جزر بيتكيرن",
+ "بولندا",
+ "البرتغال",
+ "بورتو ريكو",
+ "قطر",
+ "لا ريونيون",
+ "رومانيا",
+ "روسيا",
+ "روندا",
+ "سان بارتيلمي",
+ "سانت هيلانة",
+ "سانت كيتس ونيفيس",
+ "سانت لوسيا",
+ "سانت نرتان",
+ "سان بيير وميكلون",
+ "سانت فينسنت والغرينادين",
+ "ساماو",
+ "سان مارينو",
+ "ساو تومي وبرينسيب",
+ "السعودية",
+ "السنغال",
+ "صربيا",
+ "سيشال",
+ "سيراليون",
+ "سنغفورة",
+ "سلوفاكيا",
+ "سلوفينيا",
+ "جزر سليمان",
+ "الصومال",
+ "جنوب إفريقيا",
+ "جورجيا الجنوبية وجزر ساندويتش الجنوبية",
+ "إسبانيا",
+ "سيري لانكا",
+ "السودان",
+ "سيرينام",
+ "سفالبارد ويان ماين",
+ "سوازيلاند",
+ "السويد",
+ "سويسرا",
+ "سوريا",
+ "تايوات",
+ "طاجكستان",
+ "تنزانيا",
+ "تايلاند",
+ "تيمور الشرقية",
+ "توغو",
+ "توكيلاو",
+ "تونغوا",
+ "ترينيداد وتوباغو",
+ "تونس",
+ "تركيا",
+ "تركمنستان",
+ "جزر توركس وكايكوس",
+ "توفالو",
+ "أوغندا",
+ "أكرانيا",
+ "الإمارات العربية المتحدة",
+ "بريطانيا",
+ "أمريكا",
+ "جزر الولايات المتحدة الصغيرة النائية",
+ "أرغواي",
+ "أزباكستان",
+ "فانواتو",
+ "فينيزويلا",
+ "فيتنام",
+ "جزر العذراء البريطانية",
+ "جزر العذراء الأمريكية",
+ "واليس وفوتونا",
+ "اليمن",
+ "زمبيا",
+ "زمبابوي"
+];
diff --git a/lib/locales/ar/address/default_country.js b/lib/locales/ar/address/default_country.js
new file mode 100644
index 00000000..bdd19df6
--- /dev/null
+++ b/lib/locales/ar/address/default_country.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "المملكة العربية السعودية"
+];
diff --git a/lib/locales/ar/address/index.js b/lib/locales/ar/address/index.js
new file mode 100644
index 00000000..d1e09fc6
--- /dev/null
+++ b/lib/locales/ar/address/index.js
@@ -0,0 +1,12 @@
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.building_number = require("./building_number");
+address.secondary_address = require("./secondary_address");
+address.postcode = require("./postcode");
+address.postcode_by_state = require("./postcode_by_state");
+address.state = require("./state");
+address.city = require("./city");
+address.street_name = require("./street_name");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country"); \ No newline at end of file
diff --git a/lib/locales/ar/address/postcode.js b/lib/locales/ar/address/postcode.js
new file mode 100644
index 00000000..f233d46c
--- /dev/null
+++ b/lib/locales/ar/address/postcode.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#####",
+ "#####-####"
+];
diff --git a/lib/locales/ar/address/postcode_by_state.js b/lib/locales/ar/address/postcode_by_state.js
new file mode 100644
index 00000000..f233d46c
--- /dev/null
+++ b/lib/locales/ar/address/postcode_by_state.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#####",
+ "#####-####"
+];
diff --git a/lib/locales/ar/address/secondary_address.js b/lib/locales/ar/address/secondary_address.js
new file mode 100644
index 00000000..b4757b24
--- /dev/null
+++ b/lib/locales/ar/address/secondary_address.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "### عمارة",
+ "### طابق"
+];
diff --git a/lib/locales/ar/address/state.js b/lib/locales/ar/address/state.js
new file mode 100644
index 00000000..eaed7742
--- /dev/null
+++ b/lib/locales/ar/address/state.js
@@ -0,0 +1,52 @@
+module["exports"] = [
+ "تونس",
+ "بن عروس",
+ "أريانة",
+ "باجة",
+ "بنزرت",
+ "قابس",
+ "قفصة",
+ "جندوبة",
+ "القيروان",
+ "القصرين",
+ "قبلي",
+ "الكاف",
+ "المهدية",
+ "منوبة",
+ "مدنين",
+ "المنستير",
+ "نابل",
+ "صفاقس",
+ "بوزيد",
+ "سليانة",
+ "سوسة",
+ "تطاوين",
+ "توزر",
+ "زغوان",
+ "أدرار",
+ "الشلف",
+ "الأغواط",
+ "أم البواقي",
+ "باتنة",
+ "بجاية",
+ "بسكرة",
+ "بشار",
+ "البليدة",
+ "البويرة",
+ "تمنراست",
+ "تبسة",
+ "تلمسان",
+ "تيارت",
+ "تيزي وزو",
+ "الجزائر",
+ "الجلفة",
+ "جيجل",
+ "سطيف",
+ "سعيدة",
+ "سكيكدة",
+ "بلعباس",
+ "عنابة",
+ "قالمة",
+ "قسنطينة",
+ "المدية"
+];
diff --git a/lib/locales/ar/address/street_address.js b/lib/locales/ar/address/street_address.js
new file mode 100644
index 00000000..289216e7
--- /dev/null
+++ b/lib/locales/ar/address/street_address.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{building_number} #{street_name}"
+];
diff --git a/lib/locales/ar/address/street_name.js b/lib/locales/ar/address/street_name.js
new file mode 100644
index 00000000..c104f0e3
--- /dev/null
+++ b/lib/locales/ar/address/street_name.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#{street_preffix} #{Name.first_name}",
+ "#{street_preffix} #{Name.last_name}"
+];
diff --git a/lib/locales/ar/address/street_prefix.js b/lib/locales/ar/address/street_prefix.js
new file mode 100644
index 00000000..0a1b7352
--- /dev/null
+++ b/lib/locales/ar/address/street_prefix.js
@@ -0,0 +1,10 @@
+module["exports"] = [
+ "درب، طريق",
+ "شارع",
+ "سبيل",
+ "جادة",
+ "رصيف",
+ "مَمَر",
+ "طريق مسدود",
+ "ساحة"
+];
diff --git a/lib/locales/ar/cell_phone/formats.js b/lib/locales/ar/cell_phone/formats.js
new file mode 100644
index 00000000..09a6d2a5
--- /dev/null
+++ b/lib/locales/ar/cell_phone/formats.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "###-###-####",
+ "(###) ###-####",
+ "1-###-###-####",
+ "###.###.####"
+];
diff --git a/lib/locales/ar/cell_phone/index.js b/lib/locales/ar/cell_phone/index.js
new file mode 100644
index 00000000..8de997ba
--- /dev/null
+++ b/lib/locales/ar/cell_phone/index.js
@@ -0,0 +1,3 @@
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
diff --git a/lib/locales/ar/commerce/color.js b/lib/locales/ar/commerce/color.js
new file mode 100644
index 00000000..cac0fbf5
--- /dev/null
+++ b/lib/locales/ar/commerce/color.js
@@ -0,0 +1,33 @@
+module["exports"] = [
+ "أحمر",
+ "أخضر",
+ "أزرق",
+ "أصفر",
+ "purple",
+ "mint green",
+ "teal",
+ "أبيض",
+ "أسود",
+ "برتقالي",
+ "pink",
+ "بني",
+ "maroon",
+ "بنفسجي",
+ "turquoise",
+ "tan",
+ "sky blue",
+ "salmon",
+ "plum",
+ "orchid",
+ "olive",
+ "magenta",
+ "lime",
+ "ivory",
+ "indigo",
+ "ذهبي",
+ "fuchsia",
+ "cyan",
+ "azure",
+ "lavender",
+ "فضي"
+];
diff --git a/lib/locales/ar/commerce/department.js b/lib/locales/ar/commerce/department.js
new file mode 100644
index 00000000..3b07fca7
--- /dev/null
+++ b/lib/locales/ar/commerce/department.js
@@ -0,0 +1,22 @@
+module["exports"] = [
+ "كتب",
+ "ألعاب",
+ "إلكترونيات",
+ "حواسيب",
+ "بيت",
+ "Garden",
+ "أدوات",
+ "Grocery",
+ "صحة",
+ "جمال",
+ "Toys",
+ "أطفال",
+ "رضع",
+ "ملابس",
+ "أحذية",
+ "Jewelery",
+ "أغراض رياضية",
+ "Outdoors",
+ "Automotive",
+ "صناعة"
+];
diff --git a/lib/locales/ar/commerce/index.js b/lib/locales/ar/commerce/index.js
new file mode 100644
index 00000000..e8242422
--- /dev/null
+++ b/lib/locales/ar/commerce/index.js
@@ -0,0 +1,4 @@
+var commerce = {};
+module['exports'] = commerce;
+commerce.color = require("./color");
+commerce.department = require("./department"); \ No newline at end of file
diff --git a/lib/locales/ar/index.js b/lib/locales/ar/index.js
new file mode 100644
index 00000000..20a3ba96
--- /dev/null
+++ b/lib/locales/ar/index.js
@@ -0,0 +1,8 @@
+var ar = {};
+module['exports'] = ar;
+ar.title = "Arabic";
+ar.separator = " & ";
+ar.address = require("./address");
+ar.phone_number = require("./phone_number");
+ar.cell_phone = require("./cell_phone");
+ar.commerce = require("./commerce"); \ No newline at end of file
diff --git a/lib/locales/ar/phone_number/formats.js b/lib/locales/ar/phone_number/formats.js
new file mode 100644
index 00000000..ad3b2a47
--- /dev/null
+++ b/lib/locales/ar/phone_number/formats.js
@@ -0,0 +1,22 @@
+module["exports"] = [
+ "###-###-####",
+ "(###) ###-####",
+ "1-###-###-####",
+ "###.###.####",
+ "###-###-####",
+ "(###) ###-####",
+ "1-###-###-####",
+ "###.###.####",
+ "###-###-#### x###",
+ "(###) ###-#### x###",
+ "1-###-###-#### x###",
+ "###.###.#### x###",
+ "###-###-#### x####",
+ "(###) ###-#### x####",
+ "1-###-###-#### x####",
+ "###.###.#### x####",
+ "###-###-#### x#####",
+ "(###) ###-#### x#####",
+ "1-###-###-#### x#####",
+ "###.###.#### x#####"
+];
diff --git a/lib/locales/ar/phone_number/index.js b/lib/locales/ar/phone_number/index.js
new file mode 100644
index 00000000..8d35e011
--- /dev/null
+++ b/lib/locales/ar/phone_number/index.js
@@ -0,0 +1,3 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
diff --git a/lib/locales/de/name/last_name.js b/lib/locales/de/name/last_name.js
index b5fbecd2..ba89ff43 100644
--- a/lib/locales/de/name/last_name.js
+++ b/lib/locales/de/name/last_name.js
@@ -291,7 +291,6 @@ module["exports"] = [
"Ehmann",
"Ehrig",
"Eich",
- "Eichmann",
"Eifert",
"Einert",
"Eisenlauer",
diff --git a/lib/locales/de_AT/name/last_name.js b/lib/locales/de_AT/name/last_name.js
index b5fbecd2..ba89ff43 100644
--- a/lib/locales/de_AT/name/last_name.js
+++ b/lib/locales/de_AT/name/last_name.js
@@ -291,7 +291,6 @@ module["exports"] = [
"Ehmann",
"Ehrig",
"Eich",
- "Eichmann",
"Eifert",
"Einert",
"Eisenlauer",
diff --git a/lib/locales/en/address/direction.js b/lib/locales/en/address/direction.js
new file mode 100644
index 00000000..3d7ff312
--- /dev/null
+++ b/lib/locales/en/address/direction.js
@@ -0,0 +1,10 @@
+module["exports"] = [
+ "North",
+ "East",
+ "South",
+ "West",
+ "Northeast",
+ "Northwest",
+ "Southeast",
+ "Southwest"
+];
diff --git a/lib/locales/en/address/direction_abbr.js b/lib/locales/en/address/direction_abbr.js
new file mode 100644
index 00000000..775ab0ca
--- /dev/null
+++ b/lib/locales/en/address/direction_abbr.js
@@ -0,0 +1,10 @@
+module["exports"] = [
+ "N",
+ "E",
+ "S",
+ "W",
+ "NE",
+ "NW",
+ "SE",
+ "SW"
+];
diff --git a/lib/locales/en/address/index.js b/lib/locales/en/address/index.js
index 575f1d46..05b869c5 100644
--- a/lib/locales/en/address/index.js
+++ b/lib/locales/en/address/index.js
@@ -17,3 +17,5 @@ address.city = require("./city");
address.street_name = require("./street_name");
address.street_address = require("./street_address");
address.default_country = require("./default_country");
+address.direction = require("./direction");
+address.direction_abbr = require("./direction_abbr");
diff --git a/lib/locales/en/company/bs_noun.js b/lib/locales/en/company/bs_noun.js
index c764d732..7b98ccc2 100644
--- a/lib/locales/en/company/bs_noun.js
+++ b/lib/locales/en/company/bs_noun.js
@@ -42,5 +42,6 @@ module["exports"] = [
"functionalities",
"experiences",
"web services",
- "methodologies"
+ "methodologies",
+ "blockchains"
];
diff --git a/lib/locales/en/name/last_name.js b/lib/locales/en/name/last_name.js
index fd2f9259..56438c56 100644
--- a/lib/locales/en/name/last_name.js
+++ b/lib/locales/en/name/last_name.js
@@ -100,7 +100,6 @@ module["exports"] = [
"Durgan",
"Ebert",
"Effertz",
- "Eichmann",
"Emard",
"Emmerich",
"Erdman",
diff --git a/lib/locales/en_CA/address/postcode.js b/lib/locales/en_CA/address/postcode.js
index cd73ce97..0ea6945c 100644
--- a/lib/locales/en_CA/address/postcode.js
+++ b/lib/locales/en_CA/address/postcode.js
@@ -1,3 +1,20 @@
module["exports"] = [
- "?#? #?#"
+ "A#? #?#",
+ "B#? #?#",
+ "C#? #?#",
+ "E#? #?#",
+ "G#? #?#",
+ "H#? #?#",
+ "J#? #?#",
+ "K#? #?#",
+ "L#? #?#",
+ "M#? #?#",
+ "N#? #?#",
+ "P#? #?#",
+ "R#? #?#",
+ "S#? #?#",
+ "T#? #?#",
+ "V#? #?#",
+ "X#? #?#",
+ "Y#? #?#",
];
diff --git a/lib/locales/en_IND/address/state.js b/lib/locales/en_IND/address/state.js
index d2b686c6..8b2746a9 100644
--- a/lib/locales/en_IND/address/state.js
+++ b/lib/locales/en_IND/address/state.js
@@ -1,9 +1,14 @@
module["exports"] = [
+ "Andaman and Nicobar Islands",
"Andra Pradesh",
"Arunachal Pradesh",
"Assam",
"Bihar",
+ "Chandigarh",
"Chhattisgarh",
+ "Dadar and Nagar Haveli",
+ "Daman and Diu",
+ "Delhi",
"Goa",
"Gujarat",
"Haryana",
@@ -12,26 +17,22 @@ module["exports"] = [
"Jharkhand",
"Karnataka",
"Kerala",
+ "Lakshadweep",
"Madya Pradesh",
"Maharashtra",
"Manipur",
"Meghalaya",
"Mizoram",
"Nagaland",
- "Orissa",
+ "Odisha",
+ "Pondicherr",
"Punjab",
"Rajasthan",
"Sikkim",
"Tamil Nadu",
+ "Telangana",
"Tripura",
- "Uttaranchal",
"Uttar Pradesh",
- "West Bengal",
- "Andaman and Nicobar Islands",
- "Chandigarh",
- "Dadar and Nagar Haveli",
- "Daman and Diu",
- "Delhi",
- "Lakshadweep",
- "Pondicherry"
+ "Uttarakhand",
+ "West Bengal"
];
diff --git a/lib/locales/en_IND/address/state_abbr.js b/lib/locales/en_IND/address/state_abbr.js
index 2d2f2b83..3f46ea01 100644
--- a/lib/locales/en_IND/address/state_abbr.js
+++ b/lib/locales/en_IND/address/state_abbr.js
@@ -1,37 +1,38 @@
module["exports"] = [
+ "AN",
"AP",
"AR",
"AS",
"BR",
+ "CH",
"CG",
+ "DN",
+ "DD",
"DL",
"GA",
"GJ",
"HR",
"HP",
"JK",
- "JS",
+ "JH",
"KA",
"KL",
+ "LD",
"MP",
"MH",
"MN",
"ML",
"MZ",
"NL",
- "OR",
+ "OD",
+ "PY",
"PB",
"RJ",
"SK",
"TN",
+ "TS",
"TR",
- "UK",
"UP",
- "WB",
- "AN",
- "CH",
- "DN",
- "DD",
- "LD",
- "PY"
+ "UK",
+ "WB"
];
diff --git a/lib/locales/en_US/address/postcode_by_state.js b/lib/locales/en_US/address/postcode_by_state.js
index bf779111..3bacc4b9 100644
--- a/lib/locales/en_US/address/postcode_by_state.js
+++ b/lib/locales/en_US/address/postcode_by_state.js
@@ -1,54 +1,210 @@
module["exports"] = {
- "AL": "350##",
- "AK": "995##",
- "AS": "967##",
- "AZ": "850##",
- "AR": "717##",
- "CA": "900##",
- "CO": "800##",
- "CT": "061##",
- "DC": "204##",
- "DE": "198##",
- "FL": "322##",
- "GA": "301##",
- "HI": "967##",
- "ID": "832##",
- "IL": "600##",
- "IN": "463##",
- "IA": "510##",
- "KS": "666##",
- "KY": "404##",
- "LA": "701##",
- "ME": "042##",
- "MD": "210##",
- "MA": "026##",
- "MI": "480##",
- "MN": "555##",
- "MS": "387##",
- "MO": "650##",
- "MT": "590##",
- "NE": "688##",
- "NV": "898##",
- "NH": "036##",
- "NJ": "076##",
- "NM": "880##",
- "NY": "122##",
- "NC": "288##",
- "ND": "586##",
- "OH": "444##",
- "OK": "730##",
- "OR": "979##",
- "PA": "186##",
- "RI": "029##",
- "SC": "299##",
- "SD": "577##",
- "TN": "383##",
- "TX": "798##",
- "UT": "847##",
- "VT": "050##",
- "VA": "222##",
- "WA": "990##",
- "WV": "247##",
- "WI": "549##",
- "WY": "831##"
-};
+ AK:{
+ min:99501,
+ max:99950
+ },
+ AL:{
+ min:35004,
+ max:36925
+ },
+ AR:{
+ min:71601,
+ max:72959
+ },
+ AZ:{
+ min:85001,
+ max:86556
+ },
+ CA:{
+ min:90001,
+ max:96162
+ },
+ CO:{
+ min:80001,
+ max:81658
+ },
+ CT:{
+ min:6001,
+ max:6389
+ },
+ DC:{
+ min:20001,
+ max:20039
+ },
+ DE:{
+ min:19701,
+ max:19980
+ },
+ FL:{
+ min:32004,
+ max:34997
+ },
+ GA:{
+ min:30001,
+ max:31999
+ },
+ HI:{
+ min:96701,
+ max:96898
+ },
+ IA:{
+ min:50001,
+ max:52809
+ },
+ ID:{
+ min:83201,
+ max:83876
+ },
+ IL:{
+ min:60001,
+ max:62999
+ },
+ IN:{
+ min:46001,
+ max:47997
+ },
+ KS:{
+ min:66002,
+ max:67954
+ },
+ KY:{
+ min:40003,
+ max:42788
+ },
+ LA:{
+ min:70001,
+ max:71232
+ },
+ MA:{
+ min:1001,
+ max:2791
+ },
+ MD:{
+ min:20331,
+ max:20331
+ },
+ ME:{
+ min:3901,
+ max:4992
+ },
+ MI:{
+ min:48001,
+ max:49971
+ },
+ MN:{
+ min:55001,
+ max:56763
+ },
+ MO:{
+ min:63001,
+ max:65899
+ },
+ MS:{
+ min:38601,
+ max:39776
+ },
+ MT:{
+ min:59001,
+ max:59937
+ },
+ NC:{
+ min:27006,
+ max:28909
+ },
+ ND:{
+ min:58001,
+ max:58856
+ },
+ NE:{
+ min:68001,
+ max:68118
+ },
+ NH:{
+ min:3031,
+ max:3897
+ },
+ NJ:{
+ min:7001,
+ max:8989
+ },
+ NM:{
+ min:87001,
+ max:88441
+ },
+ NV:{
+ min:88901,
+ max:89883
+ },
+ NY:{
+ min:6390,
+ max:6390
+ },
+ OH:{
+ min:43001,
+ max:45999
+ },
+ OK:{
+ min:73001,
+ max:73199
+ },
+ OR:{
+ min:97001,
+ max:97920
+ },
+ PA:{
+ min:15001,
+ max:19640
+ },
+ PR:{
+ min:0,
+ max:0
+ },
+ RI:{
+ min:2801,
+ max:2940
+ },
+ SC:{
+ min:29001,
+ max:29948
+ },
+ SD:{
+ min:57001,
+ max:57799
+ },
+ TN:{
+ min:37010,
+ max:38589
+ },
+ TX:{
+ min:73301,
+ max:73301
+ },
+ UT:{
+ min:84001,
+ max:84784
+ },
+ VA:{
+ min:20040,
+ max:20041
+ },
+ VT:{
+ min:5001,
+ max:5495
+ },
+ WA:{
+ min:98001,
+ max:99403
+ },
+ WI:{
+ min:53001,
+ max:54990
+ },
+ WV:{
+ min:24701,
+ max:26886
+ },
+ WY:{
+ min:82001,
+ max:83128
+ }
+}
diff --git a/lib/locales/en_ZA/address/city.js b/lib/locales/en_ZA/address/city.js
new file mode 100644
index 00000000..f014e156
--- /dev/null
+++ b/lib/locales/en_ZA/address/city.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{city_prefix}"
+];
diff --git a/lib/locales/en_ZA/address/city_prefix.js b/lib/locales/en_ZA/address/city_prefix.js
new file mode 100644
index 00000000..9b52e83d
--- /dev/null
+++ b/lib/locales/en_ZA/address/city_prefix.js
@@ -0,0 +1,16 @@
+module["exports"] = [
+ "Polokwane",
+ "Johannesburg",
+ "Pretoria",
+ "Tshwane",
+ "Durban",
+ "Pietermaritzburg",
+ "Nelspruit",
+ "Cape Town",
+ "Stellenbosch",
+ "Port Elizabeth",
+ "East London",
+ "Kimberley",
+ "Rustenburg",
+ "Bloemfontein "
+];
diff --git a/lib/locales/en_ZA/address/default_country.js b/lib/locales/en_ZA/address/default_country.js
new file mode 100644
index 00000000..eaf26a73
--- /dev/null
+++ b/lib/locales/en_ZA/address/default_country.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "South Africa",
+ "The Republic of South Africa",
+ "SA",
+ "South Africa"
+];
diff --git a/lib/locales/en_ZA/address/index.js b/lib/locales/en_ZA/address/index.js
new file mode 100644
index 00000000..04d128ec
--- /dev/null
+++ b/lib/locales/en_ZA/address/index.js
@@ -0,0 +1,7 @@
+var address = {};
+module['exports'] = address;
+address.city = require("./city");
+address.city_prefix = require("./city_prefix");
+address.default_country = require("./default_country");
+address.postcode = require("./postcode");
+address.state = require("./state"); \ No newline at end of file
diff --git a/lib/locales/en_ZA/address/postcode.js b/lib/locales/en_ZA/address/postcode.js
new file mode 100644
index 00000000..a437640e
--- /dev/null
+++ b/lib/locales/en_ZA/address/postcode.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#####",
+ "####"
+];
diff --git a/lib/locales/en_ZA/address/state.js b/lib/locales/en_ZA/address/state.js
new file mode 100644
index 00000000..6d5bcecf
--- /dev/null
+++ b/lib/locales/en_ZA/address/state.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "Limpopo",
+ "Gauteng",
+ "Free State,",
+ "North West",
+ "Northern Cape",
+ "Western Cape,",
+ "KwaZulu-Natal",
+ "Mpumalanga",
+ "Eastern Cape"
+];
diff --git a/lib/locales/en_ZA/cell_phone/formats.js b/lib/locales/en_ZA/cell_phone/formats.js
new file mode 100644
index 00000000..1ebdc000
--- /dev/null
+++ b/lib/locales/en_ZA/cell_phone/formats.js
@@ -0,0 +1,20 @@
+module["exports"] = [
+ "+2760 ### ####",
+ "+2761 ### ####",
+ "+2763 ### ####",
+ "+2772 ### ####",
+ "+2773 ### ####",
+ "+2774 ### ####",
+ "+2776 ### ####",
+ "+2779 ### ####",
+ "+2781 ### ####",
+ "+2782 ### ####",
+ "+2783 ### ####",
+ "+2784 ### ####",
+ "082 ### ####",
+ "084 ### ####",
+ "083 ### ####",
+ "065 ### ####",
+ "082#######",
+ "082 #######"
+]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/cell_phone/index.js b/lib/locales/en_ZA/cell_phone/index.js
new file mode 100644
index 00000000..8de997ba
--- /dev/null
+++ b/lib/locales/en_ZA/cell_phone/index.js
@@ -0,0 +1,3 @@
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
diff --git a/lib/locales/en_ZA/company/index.js b/lib/locales/en_ZA/company/index.js
new file mode 100644
index 00000000..ddd41f55
--- /dev/null
+++ b/lib/locales/en_ZA/company/index.js
@@ -0,0 +1,3 @@
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
diff --git a/lib/locales/en_ZA/company/suffix.js b/lib/locales/en_ZA/company/suffix.js
new file mode 100644
index 00000000..f7163b89
--- /dev/null
+++ b/lib/locales/en_ZA/company/suffix.js
@@ -0,0 +1,5 @@
+module["exports"] = [
+ "Pty Ltd",
+ "Ltd",
+ "CC"
+];
diff --git a/lib/locales/en_ZA/index.js b/lib/locales/en_ZA/index.js
new file mode 100644
index 00000000..af562ffa
--- /dev/null
+++ b/lib/locales/en_ZA/index.js
@@ -0,0 +1,9 @@
+var en_ZA = {};
+module['exports'] = en_ZA;
+en_ZA.title = "South Africa (English)";
+en_ZA.address = require("./address");
+en_ZA.internet = require("./internet");
+en_ZA.name = require("./name");
+en_ZA.phone_number = require("./phone_number");
+en_ZA.cell_phone = require("./cell_phone");
+en_ZA.company = require("./company"); \ No newline at end of file
diff --git a/lib/locales/en_ZA/internet/domain_suffix.js b/lib/locales/en_ZA/internet/domain_suffix.js
new file mode 100644
index 00000000..53b9bbc0
--- /dev/null
+++ b/lib/locales/en_ZA/internet/domain_suffix.js
@@ -0,0 +1,7 @@
+module["exports"] = [
+ "co.za",
+ "com",
+ "org.za",
+ "info",
+ "net.za"
+]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/internet/index.js b/lib/locales/en_ZA/internet/index.js
new file mode 100644
index 00000000..abfa2480
--- /dev/null
+++ b/lib/locales/en_ZA/internet/index.js
@@ -0,0 +1,3 @@
+var internet = {};
+module['exports'] = internet;
+internet.domain_suffix = require("./domain_suffix");
diff --git a/lib/locales/en_ZA/name/female_first_name.js b/lib/locales/en_ZA/name/female_first_name.js
new file mode 100644
index 00000000..ce100663
--- /dev/null
+++ b/lib/locales/en_ZA/name/female_first_name.js
@@ -0,0 +1,293 @@
+module["exports"] = [
+ "Mary",
+ "Patricia",
+ "Linda",
+ "Barbara",
+ "Elizabeth",
+ "Jennifer",
+ "Susan",
+ "Margaret",
+ "Dorothy",
+ "Lisa",
+ "Karen",
+ "Helen",
+ "Sandra",
+ "Donna",
+ "Carol",
+ "Ruth",
+ "Sharon",
+ "Michelle",
+ "Laura",
+ "Sarah",
+ "Kimberly",
+ "Deborah",
+ "Jessica",
+ "Shirley",
+ "Cynthia",
+ "Angela",
+ "Melissa",
+ "Brenda",
+ "Amy",
+ "Anna",
+ "Rebecca",
+ "Kathleen",
+ "Amanda",
+ "Stephanie",
+ "Carolyn",
+ "Christine",
+ "Marie",
+ "Janet",
+ "Catherine",
+ "Ann",
+ "Joyce",
+ "Diane",
+ "Alice",
+ "Julie",
+ "Heather",
+ "Teresa",
+ "Evelyn",
+ "Cheryl",
+ "Katherine",
+ "Joan",
+ "Ashley",
+ "Judith",
+ "Rose",
+ "Janice",
+ "Kelly",
+ "Nicole",
+ "Judy",
+ "Christina",
+ "Kathy",
+ "Theresa",
+ "Beverly",
+ "Denise",
+ "Tammy",
+ "Irene",
+ "Jane",
+ "Lori",
+ "Rachel",
+ "Marilyn",
+ "Andrea",
+ "Kathryn",
+ "Louise",
+ "Sara",
+ "Anne",
+ "Jacqueline",
+ "Julia",
+ "Tina",
+ "Paula",
+ "Diana",
+ "Annie",
+ "Lillian",
+ "Emily",
+ "Robin",
+ "Rita",
+ "Tracy",
+ "Edna",
+ "Tiffany",
+ "Carmen",
+ "Cindy",
+ "Edith",
+ "Kim",
+ "Sherry",
+ "Shannon",
+ "Ethel",
+ "Ellen",
+ "Elaine",
+ "Charlotte",
+ "Monica",
+ "Pauline",
+ "Emma",
+ "Juanita",
+ "Anita",
+ "Rhonda",
+ "Hazel",
+ "Amber",
+ "Debbie",
+ "Clara",
+ "Lucille",
+ "Joanne",
+ "Eleanor",
+ "Megan",
+ "Alicia",
+ "Suzanne",
+ "Michele",
+ "Gail",
+ "Geraldine",
+ "Lauren",
+ "Cathy",
+ "Joann",
+ "Lorraine",
+ "Lynn",
+ "Erica",
+ "Beatrice",
+ "Bernice",
+ "Audrey",
+ "Yvonne",
+ "Annette",
+ "Samantha",
+ "Dana",
+ "Stacy",
+ "Ana",
+ "Renee",
+ "Ida",
+ "Vivian",
+ "Roberta",
+ "Melanie",
+ "Yolanda",
+ "Jeanette",
+ "Katie",
+ "Kristen",
+ "Vanessa",
+ "Alma",
+ "Sue",
+ "Elsie",
+ "Beth",
+ "Jeanne",
+ "Vicki",
+ "Carla",
+ "Tara",
+ "Rosemary",
+ "Eileen",
+ "Lucy",
+ "Stacey",
+ "Wilma",
+ "Gina",
+ "Kristin",
+ "Jessie",
+ "Natalie",
+ "Charlene",
+ "Melinda",
+ "Maureen",
+ "Colleen",
+ "Allison",
+ "Tamara",
+ "Joy",
+ "Claudia",
+ "Jackie",
+ "Marcia",
+ "Tanya",
+ "Nellie",
+ "Marlene",
+ "Heidi",
+ "Glenda",
+ "Lydia",
+ "Viola",
+ "Courtney",
+ "Marian",
+ "Stella",
+ "Caroline",
+ "Vickie",
+ "Maxine",
+ "Irma",
+ "Christy",
+ "Deanna",
+ "Hilda",
+ "Jennie",
+ "Nora",
+ "Nina",
+ "Cassandra",
+ "Leah",
+ "Priscilla",
+ "Carole",
+ "Olga",
+ "Billie",
+ "Dianne",
+ "Tracey",
+ "Leona",
+ "Jenny",
+ "Felicia",
+ "Sonia",
+ "Kristina",
+ "Shelly",
+ "Sherri",
+ "Erika",
+ "Katrina",
+ "Claire",
+ "Lindsay",
+ "Belinda",
+ "Margarita",
+ "Sheryl",
+ "Natasha",
+ "Molly",
+ "Cecilia",
+ "Kristi",
+ "Brandi",
+ "Blanche",
+ "Sandy",
+ "Rosie",
+ "Joanna",
+ "Iris",
+ "Eunice",
+ "Angie",
+ "Lynda",
+ "Madeline",
+ "Amelia",
+ "Monique",
+ "Maggie",
+ "Kayla",
+ "Sonya",
+ "Jan",
+ "Lee",
+ "Kristine",
+ "Candace",
+ "Alison",
+ "Yvette",
+ "Melody",
+ "Olivia",
+ "Kristy",
+ "Antoinette",
+ "Candice",
+ "Bridget",
+ "Karla",
+ "Celia",
+ "Gayle",
+ "Vicky",
+ "Lynne",
+ "Sheri",
+ "Marianne",
+ "Kara",
+ "Jacquelyn",
+ "Erma",
+ "Leticia",
+ "Krista",
+ "Roxanne",
+ "Robyn",
+ "Rosalie",
+ "Alexandra",
+ "Brooke",
+ "Bethany",
+ "Bernadette",
+ "Traci",
+ "Nichole",
+ "Krystal",
+ "Angelina",
+ "Nadine",
+ "Estelle",
+ "Dianna",
+ "Rosemarie",
+ "Desiree",
+ "Lynette",
+ "Cristina",
+ "Leigh",
+ "Meghan",
+ "Eloise",
+ "Rochelle",
+ "Jana",
+ "Gwen",
+ "Kerry",
+ "Jenna",
+ "Tricia",
+ "Laverne",
+ "Alexis",
+ "Tasha",
+ "Kellie",
+ "Sonja",
+ "Mandy",
+ "Lorene",
+ "Elsa",
+ "Camille",
+ "Tami",
+ "Elisa",
+ "Kristie"
+ ]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/name/first_name.js b/lib/locales/en_ZA/name/first_name.js
new file mode 100644
index 00000000..2a3b552d
--- /dev/null
+++ b/lib/locales/en_ZA/name/first_name.js
@@ -0,0 +1,552 @@
+module["exports"] = [
+ "Rapulane",
+ "Nthabiseng",
+ "Kopano",
+ "Mpho",
+ "Lungelo",
+ "Ziyanda",
+ "Nqobile",
+ "Monde",
+ "Mary",
+ "Patricia",
+ "Linda",
+ "Barbara",
+ "Elizabeth",
+ "Jennifer",
+ "Susan",
+ "Margaret",
+ "Dorothy",
+ "Lisa",
+ "Karen",
+ "Helen",
+ "Sandra",
+ "Donna",
+ "Carol",
+ "Ruth",
+ "Sharon",
+ "Michelle",
+ "Laura",
+ "Sarah",
+ "Kimberly",
+ "Deborah",
+ "Jessica",
+ "Shirley",
+ "Cynthia",
+ "Angela",
+ "Melissa",
+ "Brenda",
+ "Amy",
+ "Anna",
+ "Rebecca",
+ "Kathleen",
+ "Amanda",
+ "Stephanie",
+ "Carolyn",
+ "Christine",
+ "Marie",
+ "Janet",
+ "Catherine",
+ "Ann",
+ "Joyce",
+ "Diane",
+ "Alice",
+ "Julie",
+ "Heather",
+ "Teresa",
+ "Evelyn",
+ "Cheryl",
+ "Katherine",
+ "Joan",
+ "Ashley",
+ "Judith",
+ "Rose",
+ "Janice",
+ "Kelly",
+ "Nicole",
+ "Judy",
+ "Christina",
+ "Kathy",
+ "Theresa",
+ "Beverly",
+ "Denise",
+ "Tammy",
+ "Irene",
+ "Jane",
+ "Lori",
+ "Rachel",
+ "Marilyn",
+ "Andrea",
+ "Kathryn",
+ "Louise",
+ "Sara",
+ "Anne",
+ "Jacqueline",
+ "Julia",
+ "Tina",
+ "Paula",
+ "Diana",
+ "Annie",
+ "Lillian",
+ "Emily",
+ "Robin",
+ "Rita",
+ "Tracy",
+ "Edna",
+ "Tiffany",
+ "Carmen",
+ "Cindy",
+ "Edith",
+ "Kim",
+ "Sherry",
+ "Shannon",
+ "Ethel",
+ "Ellen",
+ "Elaine",
+ "Charlotte",
+ "Monica",
+ "Pauline",
+ "Emma",
+ "Juanita",
+ "Anita",
+ "Rhonda",
+ "Hazel",
+ "Amber",
+ "Debbie",
+ "Clara",
+ "Lucille",
+ "Joanne",
+ "Eleanor",
+ "Megan",
+ "Alicia",
+ "Suzanne",
+ "Michele",
+ "Gail",
+ "Geraldine",
+ "Lauren",
+ "Cathy",
+ "Joann",
+ "Lorraine",
+ "Lynn",
+ "Erica",
+ "Beatrice",
+ "Bernice",
+ "Audrey",
+ "Yvonne",
+ "Annette",
+ "Samantha",
+ "Dana",
+ "Stacy",
+ "Ana",
+ "Renee",
+ "Ida",
+ "Vivian",
+ "Roberta",
+ "Melanie",
+ "Yolanda",
+ "Jeanette",
+ "Katie",
+ "Kristen",
+ "Vanessa",
+ "Alma",
+ "Sue",
+ "Elsie",
+ "Beth",
+ "Jeanne",
+ "Vicki",
+ "Carla",
+ "Tara",
+ "Rosemary",
+ "Eileen",
+ "Lucy",
+ "Stacey",
+ "Wilma",
+ "Gina",
+ "Kristin",
+ "Jessie",
+ "Natalie",
+ "Charlene",
+ "Melinda",
+ "Maureen",
+ "Colleen",
+ "Allison",
+ "Tamara",
+ "Joy",
+ "Claudia",
+ "Jackie",
+ "Marcia",
+ "Tanya",
+ "Nellie",
+ "Marlene",
+ "Heidi",
+ "Glenda",
+ "Lydia",
+ "Viola",
+ "Courtney",
+ "Marian",
+ "Stella",
+ "Caroline",
+ "Vickie",
+ "Maxine",
+ "Irma",
+ "Christy",
+ "Deanna",
+ "Hilda",
+ "Jennie",
+ "Nora",
+ "Nina",
+ "Cassandra",
+ "Leah",
+ "Priscilla",
+ "Carole",
+ "Olga",
+ "Billie",
+ "Dianne",
+ "Tracey",
+ "Leona",
+ "Jenny",
+ "Felicia",
+ "Sonia",
+ "Kristina",
+ "Shelly",
+ "Sherri",
+ "Erika",
+ "Katrina",
+ "Claire",
+ "Lindsay",
+ "Belinda",
+ "Margarita",
+ "Sheryl",
+ "Natasha",
+ "Molly",
+ "Cecilia",
+ "Kristi",
+ "Brandi",
+ "Blanche",
+ "Sandy",
+ "Rosie",
+ "Joanna",
+ "Iris",
+ "Eunice",
+ "Angie",
+ "Lynda",
+ "Madeline",
+ "Amelia",
+ "Monique",
+ "Maggie",
+ "Kayla",
+ "Sonya",
+ "Jan",
+ "Lee",
+ "Kristine",
+ "Candace",
+ "Alison",
+ "Yvette",
+ "Melody",
+ "Olivia",
+ "Kristy",
+ "Antoinette",
+ "Candice",
+ "Bridget",
+ "Karla",
+ "Celia",
+ "Gayle",
+ "Vicky",
+ "Lynne",
+ "Sheri",
+ "Marianne",
+ "Kara",
+ "Jacquelyn",
+ "Erma",
+ "Leticia",
+ "Krista",
+ "Roxanne",
+ "Robyn",
+ "Rosalie",
+ "Alexandra",
+ "Brooke",
+ "Bethany",
+ "Bernadette",
+ "Traci",
+ "Nichole",
+ "Krystal",
+ "Angelina",
+ "Nadine",
+ "Estelle",
+ "Dianna",
+ "Rosemarie",
+ "Desiree",
+ "Lynette",
+ "Cristina",
+ "Leigh",
+ "Meghan",
+ "Eloise",
+ "Rochelle",
+ "Jana",
+ "Gwen",
+ "Kerry",
+ "Jenna",
+ "Tricia",
+ "Laverne",
+ "Alexis",
+ "Tasha",
+ "Kellie",
+ "Sonja",
+ "Mandy",
+ "Lorene",
+ "Elsa",
+ "Camille",
+ "Tami",
+ "Elisa",
+ "Kristie",
+ "James",
+ "John",
+ "Robert",
+ "Michael",
+ "William",
+ "David",
+ "Richard",
+ "Thomas",
+ "Charles",
+ "Christopher",
+ "Daniel",
+ "Dante",
+ "Paul",
+ "Mark",
+ "George",
+ "Kenneth",
+ "Steven",
+ "Edward",
+ "Brian",
+ "Ronald",
+ "Anthony",
+ "Albert",
+ "Alfred",
+ "Kevin",
+ "Jason",
+ "Matthew",
+ "Gary",
+ "Timothy",
+ "Frank",
+ "Eric",
+ "Stephen",
+ "Andrew",
+ "Raymond",
+ "Greg",
+ "Joshua",
+ "Jerry",
+ "Dennis",
+ "Peter",
+ "Henry",
+ "Carl",
+ "Arthur",
+ "Ryan",
+ "Roger",
+ "Joe",
+ "Juan",
+ "Jonathan",
+ "Justin",
+ "Terry",
+ "Gerald",
+ "Keith",
+ "Samuel",
+ "Willie",
+ "Ralph",
+ "Roy",
+ "Brandon",
+ "Adam",
+ "Harry",
+ "Wayne",
+ "Billy",
+ "Steve",
+ "Louis",
+ "Jeremy",
+ "Howard",
+ "Eugene",
+ "Carlos",
+ "Russell",
+ "Bobby",
+ "Victor",
+ "Martin",
+ "Ernest",
+ "Phillip",
+ "Craig",
+ "Alan",
+ "Shawn",
+ "Sean",
+ "Philip",
+ "Chris",
+ "Johnny",
+ "Earl",
+ "Jimmy",
+ "Bryan",
+ "Tony",
+ "Luis",
+ "Mike",
+ "Stanley",
+ "Leonard",
+ "Nathan",
+ "Dale",
+ "Manuel",
+ "Rodney",
+ "Curtis",
+ "Norman",
+ "Allen",
+ "Marvin",
+ "Vincent",
+ "Glenn",
+ "Travis",
+ "Jacob",
+ "Kyle",
+ "Francis",
+ "Bradley",
+ "Joel",
+ "Edwin",
+ "Eddie",
+ "Barry",
+ "Alexander",
+ "Bernard",
+ "Marcus",
+ "Micheal",
+ "Theodore",
+ "Clifford",
+ "Miguel",
+ "Oscar",
+ "Jay",
+ "Jim",
+ "Tom",
+ "Calvin",
+ "Alex",
+ "Jon",
+ "Ronnie",
+ "Bill",
+ "Lloyd",
+ "Tommy",
+ "Leon",
+ "Derek",
+ "Warren",
+ "Darrell",
+ "Jerome",
+ "Leo",
+ "Tim",
+ "Wesley",
+ "Gordon",
+ "Dean",
+ "Greg",
+ "Jorge",
+ "Dustin",
+ "Derrick",
+ "Dan",
+ "Herman",
+ "Glen",
+ "Shane",
+ "Rick",
+ "Brent",
+ "Tyler",
+ "Marc",
+ "Ruben",
+ "Brett",
+ "Nathaniel",
+ "Rafael",
+ "Leslie",
+ "Edgar",
+ "Raul",
+ "Ben",
+ "Chester",
+ "Cecil",
+ "Duane",
+ "Franklin",
+ "Andre",
+ "Elmer",
+ "Brad",
+ "Gabriel",
+ "Ron",
+ "Mitchell",
+ "Roland",
+ "Arnold",
+ "Harvey",
+ "Jared",
+ "Adrian",
+ "Karl",
+ "Cory",
+ "Claude",
+ "Erik",
+ "Darryl",
+ "Jamie",
+ "Neil",
+ "Jessie",
+ "Christian",
+ "Ted",
+ "Mathew",
+ "Tyrone",
+ "Darren",
+ "Kurt",
+ "Allan",
+ "Guy",
+ "Max",
+ "Dwayne",
+ "Ian",
+ "Ken",
+ "Bob",
+ "Dave",
+ "Ivan",
+ "Johnnie",
+ "Sid",
+ "Sidney",
+ "Byron",
+ "Julian",
+ "Morris",
+ "Clifton",
+ "Willard",
+ "Daryl",
+ "Ross",
+ "Andy",
+ "Kirk",
+ "Terrence",
+ "Fred",
+ "Freddie",
+ "Wade",
+ "Stuart",
+ "Joey",
+ "Nick",
+ "Julius",
+ "Trevor",
+ "Luke",
+ "Gerard",
+ "Hubert",
+ "Shaun",
+ "Matt",
+ "Cameron",
+ "Neal",
+ "Wilbur",
+ "Grant",
+ "Jean",
+ "Johnathan",
+ "Rudolph",
+ "Rudy",
+ "Marco",
+ "Garry",
+ "Bennie",
+ "Ed",
+ "Colin",
+ "Earnest",
+ "Lucas",
+ "Benny",
+ "Noel",
+ "Garrett",
+ "Gregg",
+ "Devin",
+ "Kim",
+ "Simon",
+ "Rufus",
+ "Clint",
+ "Josh",
+ "Hugo",
+ "Erick",
+ "Frankie",
+ "Stewart",
+ "Terence",
+ "Conrad",
+ "Percy",
+ "Tommie",
+ "Jan"
+]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/name/index.js b/lib/locales/en_ZA/name/index.js
new file mode 100644
index 00000000..f71eef88
--- /dev/null
+++ b/lib/locales/en_ZA/name/index.js
@@ -0,0 +1,7 @@
+var name = {};
+module['exports'] = name;
+name.name = require("./name");
+name.male_first_name = require("./male_first_name");
+name.female_first_name = require("./female_first_name");
+name.first_name = require("./first_name");
+name.last_name = require("./last_name"); \ No newline at end of file
diff --git a/lib/locales/en_ZA/name/last_name.js b/lib/locales/en_ZA/name/last_name.js
new file mode 100644
index 00000000..b92c9a9c
--- /dev/null
+++ b/lib/locales/en_ZA/name/last_name.js
@@ -0,0 +1,243 @@
+module["exports"] = [
+ "Dlamini",
+ "Zulu",
+ "Mabunda",
+ "Makhanya",
+ "Khoza",
+ "Zuma",
+ "Zondi",
+ "Abbott",
+ "Adams",
+ "Anderson",
+ "Adcock",
+ "Ashley",
+ "Amla",
+ "Baloyi",
+ "Bailey",
+ "Barrows",
+ "Barton",
+ "Berge",
+ "Bernhard",
+ "Bernier",
+ "Boyle",
+ "Braun",
+ "Blanckenberg",
+ "Brekke",
+ "Brown",
+ "Bruen",
+ "Bacher",
+ "Boucher",
+ "Bromfield",
+ "Benjamin",
+ "Bongo",
+ "Bhana",
+ "Bhengu",
+ "Carter",
+ "Cameron",
+ "Champlin",
+ "Collins",
+ "Cullinan",
+ "Chetty",
+ "Cook",
+ "Connelly",
+ "Crooks",
+ "Cummings",
+ "Cassim",
+ "Dube",
+ "Dhlamini",
+ "Daniel",
+ "Davis",
+ "Dower",
+ "Dixon",
+ "Dickinson",
+ "Douglas",
+ "Deane",
+ "Ebert",
+ "Elworthy",
+ "Feest",
+ "Fuller",
+ "Fish",
+ "Fisher",
+ "Fichardt",
+ "Govender",
+ "Gupta",
+ "Gandhi",
+ "Gibson",
+ "Gibbs",
+ "Gleason",
+ "Goonam",
+ "Gordhan",
+ "Goodwin",
+ "Grady",
+ "Graham",
+ "Grant",
+ "Green",
+ "Greenholt",
+ "Grimes",
+ "Hlongwane",
+ "Harris",
+ "Hall",
+ "Horne",
+ "Harvey",
+ "Hearne",
+ "Heller",
+ "Herzog",
+ "Hudson",
+ "Hlatshwayo",
+ "Hitchinson",
+ "Hathorn",
+ "Hayworth",
+ "Henderson",
+ "Jacobs",
+ "Jacobson",
+ "Johnson",
+ "Johnston",
+ "Jones",
+ "Joseph",
+ "Kalyan",
+ "Kathrada",
+ "King",
+ "Klusener",
+ "Klein",
+ "Keith",
+ "Kennedy",
+ "Kuhn",
+ "Khumalu",
+ "Khoza",
+ "Kunene",
+ "Kempis",
+ "Kemp",
+ "Kubheka",
+ "Khuzwayo",
+ "Linsey",
+ "Lowe",
+ "Letsoalo",
+ "Mhlanga",
+ "Mabaso",
+ "Mazibuko",
+ "Moosa",
+ "Mhlongo",
+ "Mahlangu",
+ "Markham",
+ "Mansell",
+ "Marvin",
+ "Mayer",
+ "Mbatha",
+ "Maseko",
+ "Milton",
+ "Mkhize",
+ "Moses",
+ "McKenzie",
+ "McMillan",
+ "McLaren",
+ "McLean",
+ "Miller",
+ "Mills",
+ "Mitchell",
+ "Mchunu",
+ "Munsamy",
+ "Mnisi",
+ "Moen",
+ "Motaung",
+ "Mudau",
+ "Mohr",
+ "Monahan",
+ "Moore",
+ "Moosa",
+ "Moonsamy",
+ "Mphahlele",
+ "Morar",
+ "Molefe",
+ "Mthembu",
+ "Muller",
+ "Murray",
+ "Moloi",
+ "Mofokeng",
+ "Modise",
+ "Mtshali",
+ "Mathebula",
+ "Mthethwa",
+ "Maluleke",
+ "Mokwena",
+ "Motloung",
+ "Mahabeer",
+ "Mngomezulu",
+ "Nolan",
+ "Nair",
+ "Ndlovu",
+ "Nkosi",
+ "Ngcobo",
+ "Ngwenya",
+ "Ntuli",
+ "Nxumalo",
+ "Ngubane",
+ "Nhlapo",
+ "Ndaba",
+ "Nkomo",
+ "Oliphant",
+ "Ochse",
+ "O'Linn",
+ "Patel",
+ "Parker",
+ "Parkin",
+ "Pillay",
+ "Parnell",
+ "Peterson",
+ "Procter",
+ "Poore",
+ "Pollock",
+ "Powell",
+ "Price",
+ "Prince",
+ "Pithey",
+ "Reilly",
+ "Reid",
+ "Rowe",
+ "Roberts",
+ "Richards",
+ "Richardson",
+ "Schmidt",
+ "Schultz",
+ "Stewart",
+ "Symcox",
+ "Smith",
+ "Stokes",
+ "Sinclair",
+ "Singh",
+ "Shongwe",
+ "Sibiya",
+ "Schwarz",
+ "Snooke",
+ "Sithole",
+ "Terry",
+ "Thompson",
+ "Tromp",
+ "Tuckett",
+ "Taylor",
+ "Tsabalala",
+ "Wesley",
+ "Walsh",
+ "Weber",
+ "Weimann",
+ "Willoughby",
+ "White",
+ "Welch",
+ "West",
+ "Williamson",
+ "Ziemann",
+ "Albertyn",
+ "Bosman",
+ "Bester",
+ "Truter",
+ "Tsotetsi",
+ "Prinsloo",
+ "van Niekerk",
+ "Zimmerman",
+ "Venter",
+ "van den Berg",
+ "Xaba",
+ "Zulu",
+ "Zungu",
+ "Zuma",
+ "Zwane"
+]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/name/male_first_name.js b/lib/locales/en_ZA/name/male_first_name.js
new file mode 100644
index 00000000..31c1b651
--- /dev/null
+++ b/lib/locales/en_ZA/name/male_first_name.js
@@ -0,0 +1,253 @@
+module["exports"] = [
+ "James",
+ "John",
+ "Robert",
+ "Michael",
+ "William",
+ "David",
+ "Richard",
+ "Thomas",
+ "Charles",
+ "Christopher",
+ "Daniel",
+ "Dante",
+ "Paul",
+ "Mark",
+ "George",
+ "Kenneth",
+ "Steven",
+ "Edward",
+ "Brian",
+ "Ronald",
+ "Anthony",
+ "Albert",
+ "Alfred",
+ "Kevin",
+ "Jason",
+ "Matthew",
+ "Gary",
+ "Timothy",
+ "Frank",
+ "Eric",
+ "Stephen",
+ "Andrew",
+ "Raymond",
+ "Greg",
+ "Joshua",
+ "Jerry",
+ "Dennis",
+ "Peter",
+ "Henry",
+ "Carl",
+ "Arthur",
+ "Ryan",
+ "Roger",
+ "Joe",
+ "Juan",
+ "Jonathan",
+ "Justin",
+ "Terry",
+ "Gerald",
+ "Keith",
+ "Samuel",
+ "Willie",
+ "Ralph",
+ "Roy",
+ "Brandon",
+ "Adam",
+ "Harry",
+ "Wayne",
+ "Billy",
+ "Steve",
+ "Louis",
+ "Jeremy",
+ "Howard",
+ "Eugene",
+ "Carlos",
+ "Russell",
+ "Bobby",
+ "Victor",
+ "Martin",
+ "Ernest",
+ "Phillip",
+ "Craig",
+ "Alan",
+ "Shawn",
+ "Sean",
+ "Philip",
+ "Chris",
+ "Johnny",
+ "Earl",
+ "Jimmy",
+ "Bryan",
+ "Tony",
+ "Luis",
+ "Mike",
+ "Stanley",
+ "Leonard",
+ "Nathan",
+ "Dale",
+ "Manuel",
+ "Rodney",
+ "Curtis",
+ "Norman",
+ "Allen",
+ "Marvin",
+ "Vincent",
+ "Glenn",
+ "Travis",
+ "Jacob",
+ "Kyle",
+ "Francis",
+ "Bradley",
+ "Joel",
+ "Edwin",
+ "Eddie",
+ "Barry",
+ "Alexander",
+ "Bernard",
+ "Marcus",
+ "Micheal",
+ "Theodore",
+ "Clifford",
+ "Miguel",
+ "Oscar",
+ "Jay",
+ "Jim",
+ "Tom",
+ "Calvin",
+ "Alex",
+ "Jon",
+ "Ronnie",
+ "Bill",
+ "Lloyd",
+ "Tommy",
+ "Leon",
+ "Derek",
+ "Warren",
+ "Darrell",
+ "Jerome",
+ "Leo",
+ "Tim",
+ "Wesley",
+ "Gordon",
+ "Dean",
+ "Greg",
+ "Jorge",
+ "Dustin",
+ "Derrick",
+ "Dan",
+ "Herman",
+ "Glen",
+ "Shane",
+ "Rick",
+ "Brent",
+ "Tyler",
+ "Marc",
+ "Ruben",
+ "Brett",
+ "Nathaniel",
+ "Rafael",
+ "Leslie",
+ "Edgar",
+ "Raul",
+ "Ben",
+ "Chester",
+ "Cecil",
+ "Duane",
+ "Franklin",
+ "Andre",
+ "Elmer",
+ "Brad",
+ "Gabriel",
+ "Ron",
+ "Mitchell",
+ "Roland",
+ "Arnold",
+ "Harvey",
+ "Jared",
+ "Adrian",
+ "Karl",
+ "Cory",
+ "Claude",
+ "Erik",
+ "Darryl",
+ "Jamie",
+ "Neil",
+ "Jessie",
+ "Christian",
+ "Ted",
+ "Mathew",
+ "Tyrone",
+ "Darren",
+ "Kurt",
+ "Allan",
+ "Guy",
+ "Max",
+ "Dwayne",
+ "Ian",
+ "Ken",
+ "Bob",
+ "Dave",
+ "Ivan",
+ "Johnnie",
+ "Sid",
+ "Sidney",
+ "Byron",
+ "Julian",
+ "Morris",
+ "Clifton",
+ "Willard",
+ "Daryl",
+ "Ross",
+ "Andy",
+ "Kirk",
+ "Terrence",
+ "Fred",
+ "Freddie",
+ "Wade",
+ "Stuart",
+ "Joey",
+ "Nick",
+ "Julius",
+ "Trevor",
+ "Luke",
+ "Gerard",
+ "Hubert",
+ "Shaun",
+ "Matt",
+ "Cameron",
+ "Neal",
+ "Wilbur",
+ "Grant",
+ "Jean",
+ "Johnathan",
+ "Rudolph",
+ "Rudy",
+ "Marco",
+ "Garry",
+ "Bennie",
+ "Ed",
+ "Colin",
+ "Earnest",
+ "Lucas",
+ "Benny",
+ "Noel",
+ "Garrett",
+ "Gregg",
+ "Devin",
+ "Kim",
+ "Simon",
+ "Rufus",
+ "Clint",
+ "Josh",
+ "Hugo",
+ "Erick",
+ "Frankie",
+ "Stewart",
+ "Terence",
+ "Conrad",
+ "Percy",
+ "Tommie",
+ "Jan"
+ ]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/name/name.js b/lib/locales/en_ZA/name/name.js
new file mode 100644
index 00000000..5734174b
--- /dev/null
+++ b/lib/locales/en_ZA/name/name.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#{first_name} #{last_name}",
+ "#{last_name} #{first_name}"
+];
diff --git a/lib/locales/en_ZA/phone_number/area_code.js b/lib/locales/en_ZA/phone_number/area_code.js
new file mode 100644
index 00000000..0da149d1
--- /dev/null
+++ b/lib/locales/en_ZA/phone_number/area_code.js
@@ -0,0 +1,40 @@
+module["exports"] = [
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "21",
+ "22",
+ "23",
+ "24",
+ "27",
+ "28",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "39",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "51",
+ "53",
+ "54",
+ "56",
+ "57",
+ "58"
+];
diff --git a/lib/locales/en_ZA/phone_number/exchange_code.js b/lib/locales/en_ZA/phone_number/exchange_code.js
new file mode 100644
index 00000000..b201c79a
--- /dev/null
+++ b/lib/locales/en_ZA/phone_number/exchange_code.js
@@ -0,0 +1,285 @@
+module["exports"] = [
+ "201",
+ "202",
+ "203",
+ "205",
+ "206",
+ "207",
+ "208",
+ "209",
+ "210",
+ "212",
+ "213",
+ "214",
+ "215",
+ "216",
+ "217",
+ "218",
+ "219",
+ "224",
+ "225",
+ "227",
+ "228",
+ "229",
+ "231",
+ "234",
+ "239",
+ "240",
+ "248",
+ "251",
+ "252",
+ "253",
+ "254",
+ "256",
+ "260",
+ "262",
+ "267",
+ "269",
+ "270",
+ "276",
+ "281",
+ "283",
+ "301",
+ "302",
+ "303",
+ "304",
+ "305",
+ "307",
+ "308",
+ "309",
+ "310",
+ "312",
+ "313",
+ "314",
+ "315",
+ "316",
+ "317",
+ "318",
+ "319",
+ "320",
+ "321",
+ "323",
+ "330",
+ "331",
+ "334",
+ "336",
+ "337",
+ "339",
+ "347",
+ "351",
+ "352",
+ "360",
+ "361",
+ "386",
+ "401",
+ "402",
+ "404",
+ "405",
+ "406",
+ "407",
+ "408",
+ "409",
+ "410",
+ "412",
+ "413",
+ "414",
+ "415",
+ "417",
+ "419",
+ "423",
+ "424",
+ "425",
+ "434",
+ "435",
+ "440",
+ "443",
+ "445",
+ "464",
+ "469",
+ "470",
+ "475",
+ "478",
+ "479",
+ "480",
+ "484",
+ "501",
+ "502",
+ "503",
+ "504",
+ "505",
+ "507",
+ "508",
+ "509",
+ "510",
+ "512",
+ "513",
+ "515",
+ "516",
+ "517",
+ "518",
+ "520",
+ "530",
+ "540",
+ "541",
+ "551",
+ "557",
+ "559",
+ "561",
+ "562",
+ "563",
+ "564",
+ "567",
+ "570",
+ "571",
+ "573",
+ "574",
+ "580",
+ "585",
+ "586",
+ "601",
+ "602",
+ "603",
+ "605",
+ "606",
+ "607",
+ "608",
+ "609",
+ "610",
+ "612",
+ "614",
+ "615",
+ "616",
+ "617",
+ "618",
+ "619",
+ "620",
+ "623",
+ "626",
+ "630",
+ "631",
+ "636",
+ "641",
+ "646",
+ "650",
+ "651",
+ "660",
+ "661",
+ "662",
+ "667",
+ "678",
+ "682",
+ "701",
+ "702",
+ "703",
+ "704",
+ "706",
+ "707",
+ "708",
+ "712",
+ "713",
+ "714",
+ "715",
+ "716",
+ "717",
+ "718",
+ "719",
+ "720",
+ "724",
+ "727",
+ "731",
+ "732",
+ "734",
+ "737",
+ "740",
+ "754",
+ "757",
+ "760",
+ "763",
+ "765",
+ "770",
+ "772",
+ "773",
+ "774",
+ "775",
+ "781",
+ "785",
+ "786",
+ "801",
+ "802",
+ "803",
+ "804",
+ "805",
+ "806",
+ "808",
+ "810",
+ "812",
+ "813",
+ "814",
+ "815",
+ "816",
+ "817",
+ "818",
+ "828",
+ "830",
+ "831",
+ "832",
+ "835",
+ "843",
+ "845",
+ "847",
+ "848",
+ "850",
+ "856",
+ "857",
+ "858",
+ "859",
+ "860",
+ "862",
+ "863",
+ "864",
+ "865",
+ "870",
+ "872",
+ "878",
+ "901",
+ "903",
+ "904",
+ "906",
+ "907",
+ "908",
+ "909",
+ "910",
+ "912",
+ "913",
+ "914",
+ "915",
+ "916",
+ "917",
+ "918",
+ "919",
+ "920",
+ "925",
+ "928",
+ "931",
+ "936",
+ "937",
+ "940",
+ "941",
+ "947",
+ "949",
+ "952",
+ "954",
+ "956",
+ "959",
+ "970",
+ "971",
+ "972",
+ "973",
+ "975",
+ "978",
+ "979",
+ "980",
+ "984",
+ "985",
+ "989"
+];
diff --git a/lib/locales/en_ZA/phone_number/formats.js b/lib/locales/en_ZA/phone_number/formats.js
new file mode 100644
index 00000000..00a824b9
--- /dev/null
+++ b/lib/locales/en_ZA/phone_number/formats.js
@@ -0,0 +1,14 @@
+module["exports"] = [
+ "(0##) ### ####",
+ "0## ### ####",
+ "+27 ## ### ####",
+ "01# ### #####",
+ "02# ### #####",
+ "03# ### #####",
+ "04# ### #####",
+ "05# ### #####",
+ "0800 ### ###",
+ "0860 ### ###",
+ "01#########",
+ "01# ########"
+]; \ No newline at end of file
diff --git a/lib/locales/en_ZA/phone_number/index.js b/lib/locales/en_ZA/phone_number/index.js
new file mode 100644
index 00000000..6e7023a8
--- /dev/null
+++ b/lib/locales/en_ZA/phone_number/index.js
@@ -0,0 +1,5 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.area_code = require("./area_code");
+phone_number.exchange_code = require("./exchange_code");
+phone_number.formats = require("./formats"); \ No newline at end of file
diff --git a/lib/locales/es/commerce/color.js b/lib/locales/es/commerce/color.js
new file mode 100644
index 00000000..d08b5bbc
--- /dev/null
+++ b/lib/locales/es/commerce/color.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "Rojo",
+ "Azul",
+ "Negro",
+ "Gris",
+ "Blanco",
+ "Amarillo",
+ "Verde",
+ "Morado",
+ "Violeta"
+] \ No newline at end of file
diff --git a/lib/locales/es/commerce/department.js b/lib/locales/es/commerce/department.js
new file mode 100644
index 00000000..50fd8504
--- /dev/null
+++ b/lib/locales/es/commerce/department.js
@@ -0,0 +1,21 @@
+module["exports"] = [
+ "Librería",
+ "Deportes",
+ "Videojuegos",
+ "Electrónica",
+ "Moda",
+ "Joyería",
+ "Marroquinería",
+ "Juguetería",
+ "Mascotas",
+ "Bebes",
+ "Bricolaje",
+ "Informática",
+ "Salud",
+ "Parafarmacia",
+ "Papelería",
+ "Cine",
+ "Música",
+ "Hogar",
+ "Decoración"
+] \ No newline at end of file
diff --git a/lib/locales/es/commerce/index.js b/lib/locales/es/commerce/index.js
new file mode 100644
index 00000000..c5513b11
--- /dev/null
+++ b/lib/locales/es/commerce/index.js
@@ -0,0 +1,5 @@
+var commerce = {};
+module["exports"] = commerce;
+commerce.color = require("./color");
+commerce.department = require("./department");
+commerce.product_name = require("./product_name");
diff --git a/lib/locales/es/commerce/product_name.js b/lib/locales/es/commerce/product_name.js
new file mode 100644
index 00000000..df5f82d2
--- /dev/null
+++ b/lib/locales/es/commerce/product_name.js
@@ -0,0 +1,56 @@
+module["exports"] = {
+ "adjective": [
+ "Pequeño",
+ "Ergonómico",
+ "Rústico",
+ "Inteligente",
+ "Increible",
+ "Fantástico",
+ "Práctico",
+ "Sorprendente",
+ "Genérico",
+ "Artesanal",
+ "Hecho a mano",
+ "Guapo",
+ "Guapa",
+ "Refinado",
+ "Sabroso"
+ ],
+ "material": [
+ "Acero",
+ "Madera",
+ "Plástico",
+ "Algodón",
+ "Granito",
+ "Metal",
+ "Ladrillo",
+ "Hormigon"
+ ],
+ "product": [
+ "Silla",
+ "Coche",
+ "Ordenador",
+ "Teclado",
+ "Raton",
+ "Bicicleta",
+ "Pelota",
+ "Guantes",
+ "Pantalones",
+ "Camiseta",
+ "Mesa",
+ "Zapatos",
+ "Gorro",
+ "Toallas",
+ "Sopa",
+ "Atún",
+ "Pollo",
+ "Pescado",
+ "Queso",
+ "Bacon",
+ "Pizza",
+ "Ensalada",
+ "Salchichas",
+ "Patatas fritas"
+ ]
+ };
+ \ No newline at end of file
diff --git a/lib/locales/es/company/adjective.js b/lib/locales/es/company/adjective.js
index b2487737..d25d73c8 100644
--- a/lib/locales/es/company/adjective.js
+++ b/lib/locales/es/company/adjective.js
@@ -20,7 +20,7 @@ module["exports"] = [
"Reducido",
"Mejorado",
"Para toda la empresa",
- "Ergonomico",
+ "Ergonómico",
"Exclusivo",
"Expandido",
"Extendido",
@@ -47,7 +47,7 @@ module["exports"] = [
"Operativo",
"Optimizado",
"Opcional",
- "Organico",
+ "Orgánico",
"Organizado",
"Perseverando",
"Persistente",
@@ -66,7 +66,7 @@ module["exports"] = [
"Re-contextualizado",
"Re-implementado",
"Reducido",
- "Ingenieria inversa",
+ "Ingeniería inversa",
"Robusto",
"Fácil",
"Seguro",
diff --git a/lib/locales/es/index.js b/lib/locales/es/index.js
index 3abfe808..7f3a5697 100644
--- a/lib/locales/es/index.js
+++ b/lib/locales/es/index.js
@@ -7,3 +7,4 @@ es.internet = require("./internet");
es.name = require("./name");
es.phone_number = require("./phone_number");
es.cell_phone = require("./cell_phone");
+es.commerce = require("./commerce");
diff --git a/lib/locales/es/name/first_name.js b/lib/locales/es/name/first_name.js
index 0e12d669..44aa44b6 100644
--- a/lib/locales/es/name/first_name.js
+++ b/lib/locales/es/name/first_name.js
@@ -16,8 +16,8 @@ module["exports"] = [
"César",
"Claudio",
"Clemente",
- "Cristian",
- "Cristobal",
+ "Cristián",
+ "Cristóbal",
"Daniel",
"David",
"Diego",
@@ -162,7 +162,7 @@ module["exports"] = [
"Lilia",
"Lorena",
"Lourdes",
- "Lucia",
+ "Lucía",
"Luisa",
"Luz",
"Magdalena",
@@ -180,7 +180,7 @@ module["exports"] = [
"María Teresa",
"Mariana",
"Maricarmen",
- "Marilu",
+ "Marilú",
"Marisol",
"Marta",
"Mayte",
@@ -196,13 +196,13 @@ module["exports"] = [
"Raquel",
"Rebeca",
"Reina",
- "Rocio",
+ "Rocío",
"Rosa",
"Rosalia",
"Rosario",
"Sara",
"Silvia",
- "Sofia",
+ "Sofía",
"Soledad",
"Sonia",
"Susana",
diff --git a/lib/locales/es/name/last_name.js b/lib/locales/es/name/last_name.js
index 9d69b9a2..b48e4e71 100644
--- a/lib/locales/es/name/last_name.js
+++ b/lib/locales/es/name/last_name.js
@@ -9,14 +9,14 @@ module["exports"] = [
"Adorno",
"Agosto",
"Aguayo",
- "Águilar",
+ "Aguilar",
"Aguilera",
"Aguirre",
"Alanis",
- "Alaniz",
+ "Alaníz",
"Alarcón",
"Alba",
- "Alcala",
+ "Alcalá",
"Alcántar",
"Alcaraz",
"Alejandro",
@@ -24,14 +24,14 @@ module["exports"] = [
"Alfaro",
"Alicea",
"Almanza",
- "Almaraz",
+ "Almaráz",
"Almonte",
"Alonso",
"Alonzo",
"Altamirano",
"Alva",
"Alvarado",
- "Alvarez",
+ "Álvarez",
"Amador",
"Amaya",
"Anaya",
@@ -48,7 +48,7 @@ module["exports"] = [
"Arellano",
"Arenas",
"Arevalo",
- "Arguello",
+ "Argüello",
"Arias",
"Armas",
"Armendáriz",
@@ -90,7 +90,7 @@ module["exports"] = [
"Bermúdez",
"Bernal",
"Berríos",
- "Bétancourt",
+ "Betancourt",
"Blanco",
"Bonilla",
"Borrego",
@@ -119,7 +119,7 @@ module["exports"] = [
"Cantú",
"Caraballo",
"Carbajal",
- "Cardenas",
+ "Cárdenas",
"Cardona",
"Carmona",
"Carranza",
@@ -129,11 +129,11 @@ module["exports"] = [
"Carrera",
"Carrero",
"Carrillo",
- "Carrion",
+ "Carrión",
"Carvajal",
"Casanova",
"Casares",
- "Casárez",
+ "Casarez",
"Casas",
"Casillas",
"Castañeda",
@@ -171,7 +171,7 @@ module["exports"] = [
"Corrales",
"Correa",
"Cortés",
- "Cortez",
+ "Cortéz",
"Cotto",
"Covarrubias",
"Crespo",
@@ -195,10 +195,9 @@ module["exports"] = [
"Delvalle",
"Díaz",
"Domínguez",
- "Domínquez",
"Duarte",
"Dueñas",
- "Duran",
+ "Durán",
"Echevarría",
"Elizondo",
"Enríquez",
@@ -225,7 +224,6 @@ module["exports"] = [
"Flores",
"Flórez",
"Fonseca",
- "Franco",
"Frías",
"Fuentes",
"Gaitán",
@@ -236,7 +234,7 @@ module["exports"] = [
"Galván",
"Gálvez",
"Gamboa",
- "Gamez",
+ "Gámez",
"Gaona",
"Garay",
"García",
@@ -251,9 +249,7 @@ module["exports"] = [
"Godínez",
"Godoy",
"Gómez",
- "Gonzales",
"González",
- "Gollum",
"Gracia",
"Granado",
"Granados",
@@ -264,15 +260,13 @@ module["exports"] = [
"Guerra",
"Guerrero",
"Guevara",
- "Guillen",
+ "Guillén",
"Gurule",
"Gutiérrez",
"Guzmán",
"Haro",
"Henríquez",
"Heredia",
- "Hernádez",
- "Hernandes",
"Hernández",
"Herrera",
"Hidalgo",
@@ -289,7 +283,6 @@ module["exports"] = [
"Jaramillo",
"Jasso",
"Jiménez",
- "Jimínez",
"Juárez",
"Jurado",
"Laboy",
@@ -371,7 +364,7 @@ module["exports"] = [
"Montenegro",
"Montero",
"Montes",
- "Montez",
+ "Montéz",
"Montoya",
"Mora",
"Morales",
@@ -444,7 +437,6 @@ module["exports"] = [
"Perales",
"Peralta",
"Perea",
- "Peres",
"Pérez",
"Pichardo",
"Piña",
@@ -468,10 +460,9 @@ module["exports"] = [
"Quintana",
"Quintanilla",
"Quintero",
- "Quiroz",
+ "Quiróz",
"Rael",
"Ramírez",
- "Ramón",
"Ramos",
"Rangel",
"Rascón",
@@ -495,9 +486,7 @@ module["exports"] = [
"Robles",
"Rocha",
"Rodarte",
- "Rodrígez",
"Rodríguez",
- "Rodríquez",
"Rojas",
"Rojo",
"Roldán",
@@ -512,7 +501,7 @@ module["exports"] = [
"Roybal",
"Rubio",
"Ruelas",
- "Ruiz",
+ "Ruíz",
"Saavedra",
"Sáenz",
"Saiz",
@@ -526,7 +515,6 @@ module["exports"] = [
"Salinas",
"Samaniego",
"Sanabria",
- "Sanches",
"Sánchez",
"Sandoval",
"Santacruz",
@@ -599,7 +587,6 @@ module["exports"] = [
"Vanegas",
"Varela",
"Vargas",
- "Vásquez",
"Vázquez",
"Vega",
"Vela",
@@ -620,7 +607,6 @@ module["exports"] = [
"Villalobos",
"Villalpando",
"Villanueva",
- "Villareal",
"Villarreal",
"Villaseñor",
"Villegas",
diff --git a/lib/locales/fr_CA/address/postcode.js b/lib/locales/fr_CA/address/postcode.js
index cd73ce97..0ea6945c 100644
--- a/lib/locales/fr_CA/address/postcode.js
+++ b/lib/locales/fr_CA/address/postcode.js
@@ -1,3 +1,20 @@
module["exports"] = [
- "?#? #?#"
+ "A#? #?#",
+ "B#? #?#",
+ "C#? #?#",
+ "E#? #?#",
+ "G#? #?#",
+ "H#? #?#",
+ "J#? #?#",
+ "K#? #?#",
+ "L#? #?#",
+ "M#? #?#",
+ "N#? #?#",
+ "P#? #?#",
+ "R#? #?#",
+ "S#? #?#",
+ "T#? #?#",
+ "V#? #?#",
+ "X#? #?#",
+ "Y#? #?#",
];
diff --git a/lib/locales/fr_CH/address/city.js b/lib/locales/fr_CH/address/city.js
new file mode 100644
index 00000000..d62eafb1
--- /dev/null
+++ b/lib/locales/fr_CH/address/city.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{city_name}"
+];
diff --git a/lib/locales/fr_CH/address/city_name.js b/lib/locales/fr_CH/address/city_name.js
new file mode 100644
index 00000000..3f320626
--- /dev/null
+++ b/lib/locales/fr_CH/address/city_name.js
@@ -0,0 +1,175 @@
+module["exports"] = [
+ "Aarau",
+ "Adliswil",
+ "Aesch",
+ "Affoltern am Albis",
+ "Aigle",
+ "Allschwil",
+ "Altdorf",
+ "Altstätten",
+ "Amriswil",
+ "Appenzell",
+ "Arbon",
+ "Arlesheim",
+ "Arosa",
+ "Arth",
+ "Baar",
+ "Baden",
+ "Bassersdorf",
+ "Bellinzone",
+ "Belp",
+ "Berne",
+ "Berthoud",
+ "Bienne",
+ "Binningen",
+ "Birsfelden",
+ "Brigue-Glis",
+ "Brugg",
+ "Buchs",
+ "Bulle",
+ "Bussigny",
+ "Bâle",
+ "Bülach",
+ "Carouge",
+ "Cham",
+ "Chiasso",
+ "Chêne-Bougeries",
+ "Coire",
+ "Crissier",
+ "Davos",
+ "Delémont",
+ "Dietikon",
+ "Dübendorf",
+ "Ebikon",
+ "Einsiedeln",
+ "Emmen",
+ "Flawil",
+ "Frauenfeld",
+ "Freienbach",
+ "Fribourg",
+ "Genève",
+ "Gland",
+ "Glaris Centre",
+ "Glaris Nord",
+ "Gossau",
+ "Granges",
+ "Herisau",
+ "Hinwil",
+ "Horgen",
+ "Horw",
+ "Illnau-Effretikon",
+ "Interlaken",
+ "Ittigen",
+ "Kloten",
+ "Kreuzlingen",
+ "Kriens",
+ "Köniz",
+ "Küsnacht",
+ "La Chaux-de-Fonds",
+ "La Neuveville",
+ "La Tour-de-Peilz",
+ "Lancy",
+ "Langenthal",
+ "Lausanne",
+ "Le Grand-Saconnex",
+ "Le Locle",
+ "Lenzbourg",
+ "Liestal",
+ "Locarno",
+ "Lucerne",
+ "Lugano",
+ "Lyss",
+ "Martigny",
+ "Meilen",
+ "Mendrisio",
+ "Meyrin",
+ "Monthey",
+ "Montreux",
+ "Morat",
+ "Morges",
+ "Moutier",
+ "Muri bei Bern",
+ "Muttenz",
+ "Männedorf",
+ "Möhlin",
+ "Münchenbuchsee",
+ "Münchenstein",
+ "Münsingen",
+ "Neuchâtel",
+ "Neuhausen am Rheinfall",
+ "Nyon",
+ "Oberwil",
+ "Oftringen",
+ "Olten",
+ "Onex",
+ "Opfikon",
+ "Ostermundigen",
+ "Payerne",
+ "Peseux",
+ "Pfäffikon",
+ "Plan-les-Ouates",
+ "Poliez-Pittet",
+ "Porrentruy",
+ "Pratteln",
+ "Prilly",
+ "Pully",
+ "Rapperswil-Jona",
+ "Regensdorf",
+ "Reinach",
+ "Renens",
+ "Rheinfelden",
+ "Richterswil",
+ "Riehen",
+ "Risch-Rotkreuz",
+ "Romanshorn",
+ "Rorschach",
+ "Rüti",
+ "Saint-Gall",
+ "Saint-Moritz",
+ "Sarnen",
+ "Schaffhouse",
+ "Schlieren",
+ "Schwytz",
+ "Sierre",
+ "Sion",
+ "Soleure",
+ "Spiez",
+ "Spreitenbach",
+ "Stans",
+ "Steffisburg",
+ "Steinhausen",
+ "Stäfa",
+ "Suhr",
+ "Sursee",
+ "Thalwil",
+ "Thoune",
+ "Thônex",
+ "Urdorf",
+ "Uster",
+ "Uzwil",
+ "Vernier",
+ "Versoix",
+ "Vevey",
+ "Veyrier",
+ "Villars-sur-Glâne",
+ "Viège",
+ "Volketswil",
+ "Wallisellen",
+ "Weinfelden",
+ "Wettingen",
+ "Wetzikon",
+ "Wil",
+ "Winterthour",
+ "Wohlen",
+ "Worb",
+ "Wädenswil",
+ "Yverdon-les-Bains",
+ "Zermatt",
+ "Zofingue",
+ "Zollikofen",
+ "Zollikon",
+ "Zoug",
+ "Zuchwil",
+ "Zurich",
+ "Écublens"
+];
diff --git a/lib/locales/fr_CH/address/country_code.js b/lib/locales/fr_CH/address/country_code.js
new file mode 100644
index 00000000..21074410
--- /dev/null
+++ b/lib/locales/fr_CH/address/country_code.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "CH",
+];
diff --git a/lib/locales/fr_CH/address/default_country.js b/lib/locales/fr_CH/address/default_country.js
new file mode 100644
index 00000000..4ea8078d
--- /dev/null
+++ b/lib/locales/fr_CH/address/default_country.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "Suisse"
+];
diff --git a/lib/locales/fr_CH/address/index.js b/lib/locales/fr_CH/address/index.js
new file mode 100644
index 00000000..23779fc6
--- /dev/null
+++ b/lib/locales/fr_CH/address/index.js
@@ -0,0 +1,9 @@
+var address = {};
+module['exports'] = address;
+address.country_code = require("./country_code");
+address.city = require("./city");
+address.city_name = require("./city_name");
+address.default_country = require("./default_country");
+address.postcode = require("./postcode");
+address.state = require("./state");
+
diff --git a/lib/locales/fr_CH/address/postcode.js b/lib/locales/fr_CH/address/postcode.js
new file mode 100644
index 00000000..cb94e7a7
--- /dev/null
+++ b/lib/locales/fr_CH/address/postcode.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "1###",
+ "2###",
+ "3###",
+ "4###",
+ "5###",
+ "6###",
+ "7###",
+ "8###",
+ "9###"
+];
diff --git a/lib/locales/fr_CH/address/state.js b/lib/locales/fr_CH/address/state.js
new file mode 100644
index 00000000..09a036d5
--- /dev/null
+++ b/lib/locales/fr_CH/address/state.js
@@ -0,0 +1,28 @@
+module["exports"] = [
+ "Argovie",
+ "Appenzell Rhodes-Intérieures",
+ "Appenzell Rhodes-Extérieures",
+ "Bâle-Ville",
+ "Bâle-Campagne",
+ "Berne",
+ "Fribourg",
+ "Genève",
+ "Glaris",
+ "Grisons",
+ "Jura",
+ "Lucerne",
+ "Neuchâtel",
+ "Nidwald",
+ "Obwald",
+ "Schaffhouse",
+ "Schwyt",
+ "Soleure",
+ "Saint-Gall",
+ "Thurgovie",
+ "Tessin",
+ "Uri",
+ "Valai",
+ "Vaud",
+ "Zoug",
+ "Zurich"
+];
diff --git a/lib/locales/fr_CH/index.js b/lib/locales/fr_CH/index.js
new file mode 100644
index 00000000..6c5af44d
--- /dev/null
+++ b/lib/locales/fr_CH/index.js
@@ -0,0 +1,6 @@
+var fr_CH = {};
+module['exports'] = fr_CH;
+fr_CH.title = "French (Switzerland)";
+fr_CH.address = require("./address");
+fr_CH.internet = require("./internet");
+fr_CH.phone_number = require("./phone_number");
diff --git a/lib/locales/fr_CH/internet/domain_suffix.js b/lib/locales/fr_CH/internet/domain_suffix.js
new file mode 100644
index 00000000..5a1da08c
--- /dev/null
+++ b/lib/locales/fr_CH/internet/domain_suffix.js
@@ -0,0 +1,8 @@
+module["exports"] = [
+ "com",
+ "net",
+ "biz",
+ "ch",
+ "ch",
+ "ch"
+];
diff --git a/lib/locales/fr_CH/internet/index.js b/lib/locales/fr_CH/internet/index.js
new file mode 100644
index 00000000..abfa2480
--- /dev/null
+++ b/lib/locales/fr_CH/internet/index.js
@@ -0,0 +1,3 @@
+var internet = {};
+module['exports'] = internet;
+internet.domain_suffix = require("./domain_suffix");
diff --git a/lib/locales/fr_CH/phone_number/formats.js b/lib/locales/fr_CH/phone_number/formats.js
new file mode 100644
index 00000000..ff12096b
--- /dev/null
+++ b/lib/locales/fr_CH/phone_number/formats.js
@@ -0,0 +1,17 @@
+module["exports"] = [
+ "0800 ### ###",
+ "0800 ## ## ##",
+ "0## ### ## ##",
+ "0## ### ## ##",
+ "+41 ## ### ## ##",
+ "0900 ### ###",
+ "076 ### ## ##",
+ "079 ### ## ##",
+ "078 ### ## ##",
+ "+4176 ### ## ##",
+ "+4178 ### ## ##",
+ "+4179 ### ## ##",
+ "0041 76 ### ## ##",
+ "0041 78 ### ## ##",
+ "0041 79 ### ## ##",
+];
diff --git a/lib/locales/fr_CH/phone_number/index.js b/lib/locales/fr_CH/phone_number/index.js
new file mode 100644
index 00000000..8d35e011
--- /dev/null
+++ b/lib/locales/fr_CH/phone_number/index.js
@@ -0,0 +1,3 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
diff --git a/lib/locales/id_ID/name/male_first_name.js b/lib/locales/id_ID/name/male_first_name.js
index dc9b5ebb..e0ed5571 100644
--- a/lib/locales/id_ID/name/male_first_name.js
+++ b/lib/locales/id_ID/name/male_first_name.js
@@ -155,6 +155,7 @@ module["exports"] = [
"Eja",
"Gada",
"Gadang",
+ "Gading",
"Gaduh",
"Gaiman",
"Galak",
@@ -184,10 +185,9 @@ module["exports"] = [
"Garda",
"Gatot",
"Gatra",
- "Gilang",
- "Galih",
"Ghani",
- "Gading",
+ "Gibran",
+ "Gilang",
"Hairyanto",
"Hardana",
"Hardi",
@@ -493,4 +493,4 @@ module["exports"] = [
"Yosef",
"Yono",
"Yoga"
-]; \ No newline at end of file
+];
diff --git a/lib/locales/pl/cell_phone/formats.js b/lib/locales/pl/cell_phone/formats.js
index ed3d598f..af0b88fe 100644
--- a/lib/locales/pl/cell_phone/formats.js
+++ b/lib/locales/pl/cell_phone/formats.js
@@ -1,14 +1,14 @@
module["exports"] = [
- "50-###-##-##",
- "51-###-##-##",
- "53-###-##-##",
- "57-###-##-##",
- "60-###-##-##",
- "66-###-##-##",
- "69-###-##-##",
- "72-###-##-##",
- "73-###-##-##",
- "78-###-##-##",
- "79-###-##-##",
- "88-###-##-##"
+ "50#-###-###",
+ "51#-###-###",
+ "53#-###-###",
+ "57#-###-###",
+ "60#-###-###",
+ "66#-###-###",
+ "69#-###-###",
+ "72#-###-###",
+ "73#-###-###",
+ "78#-###-###",
+ "79#-###-###",
+ "88#-###-###"
];
diff --git a/lib/locales/pt_PT/address/building_number.js b/lib/locales/pt_PT/address/building_number.js
new file mode 100644
index 00000000..c4716c4d
--- /dev/null
+++ b/lib/locales/pt_PT/address/building_number.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "####",
+ "###",
+ "##",
+ "#"
+];
diff --git a/lib/locales/pt_PT/address/city.js b/lib/locales/pt_PT/address/city.js
new file mode 100644
index 00000000..d62eafb1
--- /dev/null
+++ b/lib/locales/pt_PT/address/city.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{city_name}"
+];
diff --git a/lib/locales/pt_PT/address/city_name.js b/lib/locales/pt_PT/address/city_name.js
new file mode 100644
index 00000000..a3b47a30
--- /dev/null
+++ b/lib/locales/pt_PT/address/city_name.js
@@ -0,0 +1,153 @@
+module["exports"] = [
+ "Abrantes",
+ "Agualva-Cacém",
+ "Águeda",
+ "Albufeira",
+ "Alcácer do Sal",
+ "Alcobaça",
+ "Alfena",
+ "Almada",
+ "Almeirim",
+ "Amadora",
+ "Amarante",
+ "Amora",
+ "Anadia",
+ "Angra do Heroísmo",
+ "Aveiro",
+ "Barcelos",
+ "Barreiro",
+ "Beja",
+ "Braga",
+ "Bragança",
+ "Caldas da Rainha",
+ "Câmara de Lobos",
+ "Caniço",
+ "Cantanhede",
+ "Cartaxo",
+ "Castelo Branco",
+ "Chaves",
+ "Coimbra",
+ "Costa da Caparica",
+ "Covilhã",
+ "Elvas",
+ "Entroncamento",
+ "Ermesinde",
+ "Esmoriz",
+ "Espinho",
+ "Esposende",
+ "Estarreja",
+ "Estremoz",
+ "Évora",
+ "Fafe",
+ "Faro",
+ "Fátima",
+ "Felgueiras",
+ "Fiães",
+ "Figueira da Foz",
+ "Freamunde",
+ "Funchal",
+ "Fundão",
+ "Gafanha da Nazaré",
+ "Gandra",
+ "Gondomar",
+ "Gouveia",
+ "Guarda",
+ "Guimarães",
+ "Horta",
+ "Ílhavo",
+ "Lagoa",
+ "Lagos",
+ "Lamego",
+ "Leiria",
+ "Lisbon",
+ "Lixa",
+ "Loulé",
+ "Loures",
+ "Lourosa",
+ "Macedo de Cavaleiros",
+ "Machico",
+ "Maia",
+ "Mangualde",
+ "Marco de Canaveses",
+ "Marinha Grande",
+ "Matosinhos",
+ "Mealhada",
+ "Mêda",
+ "Miranda do Douro",
+ "Mirandela",
+ "Montemor-o-Novo",
+ "Montijo",
+ "Moura",
+ "Odivelas",
+ "Olhão da Restauração",
+ "Oliveira de Azeméis",
+ "Oliveira do Bairro",
+ "Oliveira do Hospital",
+ "Ourém",
+ "Ovar",
+ "Paços de Ferreira",
+ "Paredes",
+ "Penafiel",
+ "Peniche",
+ "Peso da Régua",
+ "Pinhel",
+ "Pombal",
+ "Ponta Delgada",
+ "Ponte de Sor",
+ "Portalegre",
+ "Portimão",
+ "Porto",
+ "Póvoa de Santa Iria",
+ "Póvoa de Varzim",
+ "Praia da Vitória",
+ "Quarteira",
+ "Queluz",
+ "Rebordosa",
+ "Reguengos de Monsaraz",
+ "Ribeira Grande",
+ "Rio Maior",
+ "Rio Tinto",
+ "Sabugal",
+ "Sacavém",
+ "Santa Comba Dão",
+ "Santa Cruz",
+ "Santa Maria da Feira",
+ "Santana",
+ "Santarém",
+ "Santiago do Cacém",
+ "Santo Tirso",
+ "São João da Madeira",
+ "São Mamede de Infesta",
+ "São Salvador de Lordelo",
+ "Seia",
+ "Seixal",
+ "Serpa",
+ "Setúbal",
+ "Silves",
+ "Sines",
+ "Tarouca",
+ "Tavira",
+ "Tomar",
+ "Tondela",
+ "Torres Novas",
+ "Torres Vedras",
+ "Trancoso",
+ "Trofa",
+ "Valbom",
+ "Vale de Cambra",
+ "Valongo",
+ "Valpaços",
+ "Vendas Novas",
+ "Viana do Castelo",
+ "Vila Baleira (a.k.a. Porto Santo)",
+ "Vila do Conde",
+ "Vila Franca de Xira",
+ "Vila Nova de Famalicão",
+ "Vila Nova de Foz Côa",
+ "Vila Nova de Gaia",
+ "Vila Nova de Santo André",
+ "Vila Real",
+ "Vila Real de Santo António",
+ "Viseu",
+ "Vizela"
+];
diff --git a/lib/locales/pt_PT/address/city_prefix.js b/lib/locales/pt_PT/address/city_prefix.js
new file mode 100644
index 00000000..4464cf4b
--- /dev/null
+++ b/lib/locales/pt_PT/address/city_prefix.js
@@ -0,0 +1,2 @@
+module["exports"] = [
+];
diff --git a/lib/locales/pt_PT/address/city_suffix.js b/lib/locales/pt_PT/address/city_suffix.js
new file mode 100644
index 00000000..4464cf4b
--- /dev/null
+++ b/lib/locales/pt_PT/address/city_suffix.js
@@ -0,0 +1,2 @@
+module["exports"] = [
+];
diff --git a/lib/locales/pt_PT/address/country.js b/lib/locales/pt_PT/address/country.js
new file mode 100644
index 00000000..e89484df
--- /dev/null
+++ b/lib/locales/pt_PT/address/country.js
@@ -0,0 +1,240 @@
+module["exports"] = [
+ "África do Sul",
+ "Áustria",
+ "Índia",
+ "Afeganistão",
+ "Albânia",
+ "Alemanha",
+ "Andorra",
+ "Angola",
+ "Anguila",
+ "Antárctida",
+ "Antígua e Barbuda",
+ "Antilhas Neerlandesas",
+ "Arábia Saudita",
+ "Argélia",
+ "Argentina",
+ "Arménia",
+ "Aruba",
+ "Austrália",
+ "Azerbaijão",
+ "Bélgica",
+ "Bósnia e Herzegovina",
+ "Baamas",
+ "Bangladeche",
+ "Barém",
+ "Barbados",
+ "Belize",
+ "Benim",
+ "Bermudas",
+ "Bielorrússia",
+ "Birmânia",
+ "Bolívia",
+ "Botsuana",
+ "Brasil",
+ "Brunei",
+ "Bulgária",
+ "Burúndi",
+ "Burquina Faso",
+ "Butão",
+ "Cabo Verde",
+ "Camarões",
+ "Camboja",
+ "Canadá",
+ "Catar",
+ "Cazaquistão",
+ "Chade",
+ "Chile",
+ "China",
+ "Chipre",
+ "Colômbia",
+ "Comores",
+ "Congo-Brazzaville",
+ "Congo-Kinshasa",
+ "Coreia do Norte",
+ "Coreia do Sul",
+ "Costa Rica",
+ "Costa do Marfim",
+ "Croácia",
+ "Cuba",
+ "Dinamarca",
+ "Domínica",
+ "Egipto",
+ "Emiratos Árabes Unidos",
+ "Equador",
+ "Eritreia",
+ "Eslováquia",
+ "Eslovénia",
+ "Espanha",
+ "Estónia",
+ "Estados Unidos",
+ "Etiópia",
+ "Faroé",
+ "Fiji",
+ "Filipinas",
+ "Finlândia",
+ "França",
+ "Gâmbia",
+ "Gabão",
+ "Gana",
+ "Geórgia",
+ "Geórgia do Sul e Sandwich do Sul",
+ "Gibraltar",
+ "Grécia",
+ "Granada",
+ "Gronelândia",
+ "Guadalupe",
+ "Guame",
+ "Guatemala",
+ "Guiana",
+ "Guiana Francesa",
+ "Guiné",
+ "Guiné Equatorial",
+ "Guiné-Bissau",
+ "Haiti",
+ "Honduras",
+ "Hong Kong",
+ "Hungria",
+ "Iémen",
+ "Ilha Bouvet",
+ "Ilha Norfolk",
+ "Ilha do Natal",
+ "Ilhas Caimão",
+ "Ilhas Cook",
+ "Ilhas Falkland",
+ "Ilhas Heard e McDonald",
+ "Ilhas Marshall",
+ "Ilhas Menores Distantes dos Estados Unidos",
+ "Ilhas Salomão",
+ "Ilhas Turcas e Caicos",
+ "Ilhas Virgens Americanas",
+ "Ilhas Virgens Britânicas",
+ "Ilhas dos Cocos",
+ "Indonésia",
+ "Irão",
+ "Iraque",
+ "Irlanda",
+ "Islândia",
+ "Israel",
+ "Itália",
+ "Jamaica",
+ "Japão",
+ "Jibuti",
+ "Jordânia",
+ "Jugoslávia",
+ "Kuwait",
+ "Líbano",
+ "Líbia",
+ "Laos",
+ "Lesoto",
+ "Letónia",
+ "Libéria",
+ "Listenstaine",
+ "Lituânia",
+ "Luxemburgo",
+ "México",
+ "Mónaco",
+ "Macau",
+ "Macedónia",
+ "Madagáscar",
+ "Malásia",
+ "Malávi",
+ "Maldivas",
+ "Mali",
+ "Malta",
+ "Marianas do Norte",
+ "Marrocos",
+ "Martinica",
+ "Maurícia",
+ "Mauritânia",
+ "Mayotte",
+ "Micronésia",
+ "Moçambique",
+ "Moldávia",
+ "Mongólia",
+ "Monserrate",
+ "Níger",
+ "Namíbia",
+ "Nauru",
+ "Nepal",
+ "Nicarágua",
+ "Nigéria",
+ "Niue",
+ "Noruega",
+ "Nova Caledónia",
+ "Nova Zelândia",
+ "Omã",
+ "Países Baixos",
+ "Palau",
+ "Panamá",
+ "Papua-Nova Guiné",
+ "Paquistão",
+ "Paraguai",
+ "Peru",
+ "Pitcairn",
+ "Polónia",
+ "Polinésia Francesa",
+ "Porto Rico",
+ "Portugal",
+ "Quénia",
+ "Quirguizistão",
+ "Quiribáti",
+ "Rússia",
+ "Reino Unido",
+ "República Centro-Africana",
+ "República Checa",
+ "República Dominicana",
+ "Reunião",
+ "Roménia",
+ "Ruanda",
+ "São Cristóvão e Neves",
+ "São Marinho",
+ "São Pedro e Miquelon",
+ "São Tomé e Príncipe",
+ "São Vicente e Granadinas",
+ "Síria",
+ "Salvador",
+ "Samoa",
+ "Samoa Americana",
+ "Santa Helena",
+ "Santa Lúcia",
+ "Sara Ocidental",
+ "Seicheles",
+ "Senegal",
+ "Serra Leoa",
+ "Singapura",
+ "Somália",
+ "Sri Lanca",
+ "Suécia",
+ "Suíça",
+ "Suazilândia",
+ "Sudão",
+ "Suriname",
+ "Svalbard e Jan Mayen",
+ "Tailândia",
+ "Taiwan",
+ "Tajiquistão",
+ "Tanzânia",
+ "Território Britânico do Oceano Índico",
+ "Territórios Austrais Franceses",
+ "Timor Leste",
+ "Togo",
+ "Tokelau",
+ "Tonga",
+ "Trindade e Tobago",
+ "Tunísia",
+ "Turquemenistão",
+ "Turquia",
+ "Tuvalu",
+ "Ucrânia",
+ "Uganda",
+ "Uruguai",
+ "Usbequistão",
+ "Vanuatu",
+ "Vaticano",
+ "Venezuela",
+ "Vietname",
+ "Wallis e Futuna",
+ "Zâmbia",
+ "Zimbabué"
+];
diff --git a/lib/locales/pt_PT/address/default_country.js b/lib/locales/pt_PT/address/default_country.js
new file mode 100644
index 00000000..1fd736a8
--- /dev/null
+++ b/lib/locales/pt_PT/address/default_country.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "Portugal"
+];
diff --git a/lib/locales/pt_PT/address/direction.js b/lib/locales/pt_PT/address/direction.js
new file mode 100644
index 00000000..8dd20f2b
--- /dev/null
+++ b/lib/locales/pt_PT/address/direction.js
@@ -0,0 +1,10 @@
+module["exports"] = [
+ "Norte",
+ "Este",
+ "Sul",
+ "Oeste",
+ "Nordeste",
+ "Noroeste",
+ "Sudeste",
+ "Sodoeste"
+];
diff --git a/lib/locales/pt_PT/address/index.js b/lib/locales/pt_PT/address/index.js
new file mode 100644
index 00000000..e67c334f
--- /dev/null
+++ b/lib/locales/pt_PT/address/index.js
@@ -0,0 +1,14 @@
+var address = {};
+module['exports'] = address;
+address.country = require("./country");
+address.street_name = require("./street_name");
+address.building_number = require("./building_number");
+address.street_prefix = require("./street_prefix");
+address.postcode = require("./postcode");
+address.city_prefix = require("./city_prefix");
+address.city_name = require("./city_name");
+address.city_suffix = require("./city_suffix");
+address.city = require("./city");
+address.direction = require("./direction");
+address.street_address = require("./street_address");
+address.default_country = require("./default_country");
diff --git a/lib/locales/pt_PT/address/postcode.js b/lib/locales/pt_PT/address/postcode.js
new file mode 100644
index 00000000..7c7e5a36
--- /dev/null
+++ b/lib/locales/pt_PT/address/postcode.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "####-###"
+];
diff --git a/lib/locales/pt_PT/address/street_address.js b/lib/locales/pt_PT/address/street_address.js
new file mode 100644
index 00000000..74209742
--- /dev/null
+++ b/lib/locales/pt_PT/address/street_address.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "#{street_name} #{building_number}"
+];
diff --git a/lib/locales/pt_PT/address/street_name.js b/lib/locales/pt_PT/address/street_name.js
new file mode 100644
index 00000000..23587837
--- /dev/null
+++ b/lib/locales/pt_PT/address/street_name.js
@@ -0,0 +1,7 @@
+module["exports"] = [
+ "#{street_prefix} #{Name.first_name} #{Name.last_name}",
+ "N#",
+ "N##",
+ "N###",
+ "N###-#"
+];
diff --git a/lib/locales/pt_PT/address/street_prefix.js b/lib/locales/pt_PT/address/street_prefix.js
new file mode 100644
index 00000000..5f0826c6
--- /dev/null
+++ b/lib/locales/pt_PT/address/street_prefix.js
@@ -0,0 +1,22 @@
+module["exports"] = [
+ "Acesso",
+ "Alameda",
+ "Avenida",
+ "Azinhaga",
+ "Bairro",
+ "Beco",
+ "Calçada",
+ "Caminho",
+ "Escadas",
+ "Estrada",
+ "Jardim",
+ "Ladeira",
+ "Largo",
+ "Praça",
+ "Praceta",
+ "Quinta",
+ "Rua",
+ "Travessa",
+ "Urbanização",
+ "Viela"
+];
diff --git a/lib/locales/pt_PT/cell_phone/formats.js b/lib/locales/pt_PT/cell_phone/formats.js
new file mode 100644
index 00000000..97ba1cee
--- /dev/null
+++ b/lib/locales/pt_PT/cell_phone/formats.js
@@ -0,0 +1,5 @@
+module["exports"] = [
+ "+351 91#######",
+ "+351 93#######",
+ "+351 96#######"
+];
diff --git a/lib/locales/pt_PT/cell_phone/index.js b/lib/locales/pt_PT/cell_phone/index.js
new file mode 100644
index 00000000..8de997ba
--- /dev/null
+++ b/lib/locales/pt_PT/cell_phone/index.js
@@ -0,0 +1,3 @@
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
diff --git a/lib/locales/pt_PT/commerce/color.js b/lib/locales/pt_PT/commerce/color.js
new file mode 100644
index 00000000..797d78b1
--- /dev/null
+++ b/lib/locales/pt_PT/commerce/color.js
@@ -0,0 +1,29 @@
+module["exports"] = [
+ "vermelho",
+ "verde",
+ "azul",
+ "amarelo",
+ "roxo",
+ "branco",
+ "preto",
+ "laranja",
+ "rosa",
+ "cinzento",
+ "castanho",
+ "violeta",
+ "turquesa",
+ "bronzeado",
+ "salmão",
+ "ameixa",
+ "orquídea",
+ "magenta",
+ "lima",
+ "marfim",
+ "índigo",
+ "ouro",
+ "fúcsia",
+ "ciano",
+ "azure",
+ "lavanda",
+ "prata"
+];
diff --git a/lib/locales/pt_PT/commerce/department.js b/lib/locales/pt_PT/commerce/department.js
new file mode 100644
index 00000000..57299ceb
--- /dev/null
+++ b/lib/locales/pt_PT/commerce/department.js
@@ -0,0 +1,24 @@
+module["exports"] = [
+ "Livros",
+ "Filmes",
+ "Música",
+ "Jogos",
+ "Electrónica",
+ "Computadores",
+ "Casa",
+ "Jardim",
+ "Ferramentas",
+ "Mercearia",
+ "Saúde",
+ "Beleza",
+ "Brinquedos",
+ "Crianças",
+ "Bebé",
+ "Roupas",
+ "Sapatos",
+ "Jóias",
+ "Desporto",
+ "Ar Livre",
+ "Automóveis",
+ "Industrial"
+];
diff --git a/lib/locales/pt_PT/commerce/index.js b/lib/locales/pt_PT/commerce/index.js
new file mode 100644
index 00000000..c05b5272
--- /dev/null
+++ b/lib/locales/pt_PT/commerce/index.js
@@ -0,0 +1,5 @@
+var commerce = {};
+module['exports'] = commerce;
+commerce.color = require("./color");
+commerce.department = require("./department");
+commerce.product_name = require("./product_name");
diff --git a/lib/locales/pt_PT/commerce/product_name.js b/lib/locales/pt_PT/commerce/product_name.js
new file mode 100644
index 00000000..bcf21bb9
--- /dev/null
+++ b/lib/locales/pt_PT/commerce/product_name.js
@@ -0,0 +1,60 @@
+module["exports"] = {
+ "adjective": [
+ "Pequeno",
+ "Ergonómico",
+ "Rústico",
+ "Inteligente",
+ "Linda",
+ "Incrível",
+ "Fantástico",
+ "Prático",
+ "Lustroso",
+ "Impressionante",
+ "Genérico",
+ "Artesanal",
+ "Feito à Mão",
+ "Licenciado",
+ "Refinado",
+ "Sem Marca",
+ "Saboroso"
+ ],
+ "material": [
+ "Aço",
+ "Madeira",
+ "Betão",
+ "Plástico",
+ "Algodão",
+ "Granito",
+ "Borracha",
+ "Metal",
+ "Suave",
+ "Fresco",
+ "Congelado"
+ ],
+ "product": [
+ "Cadeira",
+ "Carro",
+ "Computador",
+ "Teclado",
+ "Rato",
+ "Bicicleta",
+ "Bola",
+ "Luvas",
+ "Calças",
+ "Camisa",
+ "Mesa",
+ "Sapatos",
+ "Chapéu",
+ "Toalhas",
+ "Sabonete",
+ "Atum",
+ "Frango",
+ "Peixe",
+ "Queijo",
+ "Bacon",
+ "Pizza",
+ "Salada",
+ "Salsichas",
+ "Batatas Fritas"
+ ]
+};
diff --git a/lib/locales/pt_PT/date/index.js b/lib/locales/pt_PT/date/index.js
new file mode 100644
index 00000000..8c45d3f6
--- /dev/null
+++ b/lib/locales/pt_PT/date/index.js
@@ -0,0 +1,4 @@
+var date = {};
+module["exports"] = date;
+date.month = require("./month");
+date.weekday = require("./weekday");
diff --git a/lib/locales/pt_PT/date/month.js b/lib/locales/pt_PT/date/month.js
new file mode 100644
index 00000000..1f23a5b5
--- /dev/null
+++ b/lib/locales/pt_PT/date/month.js
@@ -0,0 +1,31 @@
+// Source: https://unicode.org/cldr/trac/browser/trunk/common/main/pt.xml?rev=14409#L1811
+module["exports"] = {
+ wide: [
+ "Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro"
+ ],
+ abbr: [
+ "Jan",
+ "Fev",
+ "Mar",
+ "Abr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Ago",
+ "Set",
+ "Out",
+ "Nov",
+ "Dez"
+ ]
+};
diff --git a/lib/locales/pt_PT/date/weekday.js b/lib/locales/pt_PT/date/weekday.js
new file mode 100644
index 00000000..f34e0216
--- /dev/null
+++ b/lib/locales/pt_PT/date/weekday.js
@@ -0,0 +1,21 @@
+// Source: https://unicode.org/cldr/trac/browser/trunk/common/main/pt_PT.xml?rev=14409#L491
+module["exports"] = {
+ wide: [
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado",
+ "Domingo"
+ ],
+ abbr: [
+ "Seg",
+ "Ter",
+ "Qua",
+ "Qui",
+ "Sex",
+ "Sáb",
+ "Dom"
+ ]
+};
diff --git a/lib/locales/pt_PT/index.js b/lib/locales/pt_PT/index.js
new file mode 100644
index 00000000..913f5e5d
--- /dev/null
+++ b/lib/locales/pt_PT/index.js
@@ -0,0 +1,10 @@
+var pt_PT = {};
+module['exports'] = pt_PT;
+pt_PT.title = "Portuguese (Portugal)";
+pt_PT.address = require("./address");
+pt_PT.internet = require("./internet");
+pt_PT.name = require("./name");
+pt_PT.phone_number = require("./phone_number");
+pt_PT.cell_phone = require("./cell_phone");
+pt_PT.commerce = require("./commerce");
+pt_PT.date = require("./date");
diff --git a/lib/locales/pt_PT/internet/domain_suffix.js b/lib/locales/pt_PT/internet/domain_suffix.js
new file mode 100644
index 00000000..20764908
--- /dev/null
+++ b/lib/locales/pt_PT/internet/domain_suffix.js
@@ -0,0 +1,13 @@
+module["exports"] = [
+ "pt",
+ "gov.pt",
+ "com.pt",
+ "org.pt",
+ "eu",
+ "com",
+ "biz",
+ "info",
+ "name",
+ "net",
+ "org"
+];
diff --git a/lib/locales/pt_PT/internet/free_email.js b/lib/locales/pt_PT/internet/free_email.js
new file mode 100644
index 00000000..7c2bb41b
--- /dev/null
+++ b/lib/locales/pt_PT/internet/free_email.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "gmail.com",
+ "yahoo.com",
+ "hotmail.com",
+ "outlook.com",
+ "live.com",
+ "portugalmail.pt",
+ "mail.pt",
+ "sapo.pt",
+ "aeiou.pt"
+];
diff --git a/lib/locales/pt_PT/internet/index.js b/lib/locales/pt_PT/internet/index.js
new file mode 100644
index 00000000..8a337d64
--- /dev/null
+++ b/lib/locales/pt_PT/internet/index.js
@@ -0,0 +1,4 @@
+var internet = {};
+module['exports'] = internet;
+internet.free_email = require("./free_email");
+internet.domain_suffix = require("./domain_suffix");
diff --git a/lib/locales/pt_PT/name/female_first_name.js b/lib/locales/pt_PT/name/female_first_name.js
new file mode 100644
index 00000000..61802046
--- /dev/null
+++ b/lib/locales/pt_PT/name/female_first_name.js
@@ -0,0 +1,95 @@
+module["exports"] = [
+ "Adriana",
+ "Alexandra",
+ "Alice",
+ "Amélia",
+ "Ana",
+ "Ariana",
+ "Áurea",
+ "Aurora",
+ "Bárbara",
+ "Beatriz",
+ "Benedita",
+ "Bruna",
+ "Caetana",
+ "Camila",
+ "Carla",
+ "Carlota",
+ "Carminho",
+ "Carmo",
+ "Carolina",
+ "Catarina",
+ "Cecília",
+ "Célia",
+ "Clara",
+ "Constança",
+ "Daniela",
+ "Débora",
+ "Diana",
+ "Eduarda",
+ "Elisa",
+ "Ema",
+ "Emília",
+ "Érica",
+ "Eva",
+ "Fabiana",
+ "Filipa",
+ "Flor",
+ "Francisca",
+ "Frederica",
+ "Gabriela",
+ "Helena",
+ "Inês",
+ "Irina",
+ "Íris",
+ "Isabel",
+ "Jéssica",
+ "Joana",
+ "Júlia",
+ "Juliana",
+ "Julieta",
+ "Lara",
+ "Laura",
+ "Leonor",
+ "Letícia",
+ "Lia",
+ "Lorena",
+ "Luana",
+ "Luena",
+ "Luísa",
+ "Luna",
+ "Madalena",
+ "Mafalda",
+ "Mara",
+ "Márcia",
+ "Margarida",
+ "Maria",
+ "Mariana",
+ "Marta",
+ "Matilde",
+ "Melissa",
+ "Mia",
+ "Miriam",
+ "Natália",
+ "Nicole",
+ "Núria",
+ "Ofélia",
+ "Olívia",
+ "Paula",
+ "Pilar",
+ "Rafaela",
+ "Raquel",
+ "Rita",
+ "Rosa",
+ "Safira",
+ "Sara",
+ "Sílvia",
+ "Sofia",
+ "Soraia",
+ "Tatiana",
+ "Teresa",
+ "Valentina",
+ "Vânia",
+ "Vera",
+ "Vitória"
+];
diff --git a/lib/locales/pt_PT/name/female_prefix.js b/lib/locales/pt_PT/name/female_prefix.js
new file mode 100644
index 00000000..b275dc0f
--- /dev/null
+++ b/lib/locales/pt_PT/name/female_prefix.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "Sra.",
+ "Dra.",
+ "Prof.ª",
+ "Eng.ª"
+];
diff --git a/lib/locales/pt_PT/name/first_name.js b/lib/locales/pt_PT/name/first_name.js
new file mode 100644
index 00000000..a8fa464b
--- /dev/null
+++ b/lib/locales/pt_PT/name/first_name.js
@@ -0,0 +1,190 @@
+module["exports"] = [
+ "Adriana",
+ "Afonso",
+ "Alexandra",
+ "Alexandre",
+ "Alice",
+ "Amélia",
+ "Ana",
+ "André",
+ "Ângelo",
+ "António",
+ "Ariana",
+ "Artur",
+ "Áurea",
+ "Aurora",
+ "Bárbara",
+ "Beatriz",
+ "Benedita",
+ "Benjamim",
+ "Bernardo",
+ "Bruna",
+ "Bruno",
+ "Caetana",
+ "Camila",
+ "Carla",
+ "Carlos",
+ "Carlota",
+ "Carminho",
+ "Carmo",
+ "Carolina",
+ "Catarina",
+ "Cecília",
+ "Célia",
+ "César",
+ "Clara",
+ "Constança",
+ "Cristiano",
+ "Daniel",
+ "Daniela",
+ "David",
+ "Débora",
+ "Diana",
+ "Dinis",
+ "Diogo",
+ "Duarte",
+ "Edgar",
+ "Eduarda",
+ "Eduardo",
+ "Elias",
+ "Elisa",
+ "Ema",
+ "Emanuel",
+ "Emília",
+ "Érica",
+ "Eva",
+ "Fabiana",
+ "Fábio",
+ "Feliciano",
+ "Fernando",
+ "Filipa",
+ "Filipe",
+ "Flor",
+ "Francisca",
+ "Francisco",
+ "Frederica",
+ "Frederico",
+ "Gabriel",
+ "Gabriela",
+ "Gaspar",
+ "Gil",
+ "Gonçalo",
+ "Guilherme",
+ "Gustavo",
+ "Helena",
+ "Hélio",
+ "Henrique",
+ "Hugo",
+ "Igor",
+ "Ígor",
+ "Inês",
+ "Irina",
+ "Íris",
+ "Isabel",
+ "Isac",
+ "Ivan",
+ "Ivo",
+ "Jaime",
+ "Jéssica",
+ "Joana",
+ "João",
+ "Joaquim",
+ "Jorge",
+ "José",
+ "Josué",
+ "Júlia",
+ "Juliana",
+ "Julieta",
+ "Júlio",
+ "Lara",
+ "Laura",
+ "Leandro",
+ "Leonardo",
+ "Leonor",
+ "Letícia",
+ "Lia",
+ "Lorena",
+ "Lourenço",
+ "Luana",
+ "Lucas",
+ "Luena",
+ "Luís",
+ "Luísa",
+ "Luna",
+ "Madalena",
+ "Mafalda",
+ "Manel",
+ "Manuel",
+ "Mara",
+ "Marcelo",
+ "Márcia",
+ "Marco",
+ "Marcos",
+ "Margarida",
+ "Maria",
+ "Mariana",
+ "Mário",
+ "Marta",
+ "Martim",
+ "Mateus",
+ "Matias",
+ "Matilde",
+ "Mauro",
+ "Melissa",
+ "Mia",
+ "Micael",
+ "Miguel",
+ "Miriam",
+ "Moisés",
+ "Natália",
+ "Nicole",
+ "Norberto",
+ "Nuno",
+ "Núria",
+ "Ofélia",
+ "Olívia",
+ "Paula",
+ "Paulo",
+ "Pedro",
+ "Pilar",
+ "Rafael",
+ "Rafaela",
+ "Raquel",
+ "Raul",
+ "Renato",
+ "Ricardo",
+ "Rita",
+ "Roberto",
+ "Rodrigo",
+ "Romeu",
+ "Rosa",
+ "Rúben",
+ "Rui",
+ "Safira",
+ "Salvador",
+ "Samuel",
+ "Sandro",
+ "Santiago",
+ "Sara",
+ "Sebastião",
+ "Sérgio",
+ "Sílvia",
+ "Simão",
+ "Sofia",
+ "Soraia",
+ "Tatiana",
+ "Teresa",
+ "Tiago",
+ "Tomás",
+ "Tomé",
+ "Valentim",
+ "Valentina",
+ "Valter",
+ "Vânia",
+ "Vasco",
+ "Vera",
+ "Vicente",
+ "Vítor",
+ "Vitória",
+ "Xavier"
+];
diff --git a/lib/locales/pt_PT/name/index.js b/lib/locales/pt_PT/name/index.js
new file mode 100644
index 00000000..c2af3f0d
--- /dev/null
+++ b/lib/locales/pt_PT/name/index.js
@@ -0,0 +1,11 @@
+var name = {};
+module['exports'] = name;
+name.male_prefix = require("./male_prefix");
+name.male_first_name = require("./male_first_name");
+name.female_prefix = require("./female_prefix");
+name.female_first_name = require("./female_first_name");
+name.first_name = require("./first_name");
+name.last_name = require("./last_name");
+name.prefix = require("./prefix");
+name.suffix = require("./suffix");
+name.name = require("./name");
diff --git a/lib/locales/pt_PT/name/last_name.js b/lib/locales/pt_PT/name/last_name.js
new file mode 100644
index 00000000..ae41dd3e
--- /dev/null
+++ b/lib/locales/pt_PT/name/last_name.js
@@ -0,0 +1,103 @@
+module["exports"] = [
+ "Abreu",
+ "Albuquerque",
+ "Almeida",
+ "Alves",
+ "Amaral",
+ "Amorim",
+ "Andrade",
+ "Anjos",
+ "Antunes",
+ "Araújo",
+ "Assunção",
+ "Azevedo",
+ "Baptista",
+ "Barbosa",
+ "Barros",
+ "Batista",
+ "Borges",
+ "Braga",
+ "Branco",
+ "Brito",
+ "Campos",
+ "Cardoso",
+ "Carneiro",
+ "Carvalho",
+ "Castro",
+ "Coelho",
+ "Correia",
+ "Costa",
+ "Cruz",
+ "Cunha",
+ "Domingues",
+ "Esteves",
+ "Faria",
+ "Fernandes",
+ "Ferreira",
+ "Figueiredo",
+ "Fonseca",
+ "Freitas",
+ "Garcia",
+ "Gaspar",
+ "Gomes",
+ "Gonçalves",
+ "Guerreiro",
+ "Henriques",
+ "Jesus",
+ "Leal",
+ "Leite",
+ "Lima",
+ "Lopes",
+ "Loureiro",
+ "Lourenço",
+ "Macedo",
+ "Machado",
+ "Magalhães",
+ "Maia",
+ "Marques",
+ "Martins",
+ "Matias",
+ "Matos",
+ "Melo",
+ "Mendes",
+ "Miranda",
+ "Monteiro",
+ "Morais",
+ "Moreira",
+ "Mota",
+ "Moura",
+ "Nascimento",
+ "Neto",
+ "Neves",
+ "Nobre",
+ "Nogueira",
+ "Nunes",
+ "Oliveira",
+ "Pacheco",
+ "Paiva",
+ "Pereira",
+ "Pinheiro",
+ "Pinho",
+ "Pinto",
+ "Pires",
+ "Ramos",
+ "Raposo",
+ "Reis",
+ "Ribeiro",
+ "Rocha",
+ "Rodrigues",
+ "Santos",
+ "Saraiva",
+ "Silva",
+ "Simões",
+ "Soares",
+ "Sousa",
+ "Sá",
+ "Tavares",
+ "Teixeira",
+ "Torres",
+ "Valente",
+ "Vaz",
+ "Vicente",
+ "Vieira"
+];
diff --git a/lib/locales/pt_PT/name/male_first_name.js b/lib/locales/pt_PT/name/male_first_name.js
new file mode 100644
index 00000000..6b2cd32c
--- /dev/null
+++ b/lib/locales/pt_PT/name/male_first_name.js
@@ -0,0 +1,97 @@
+module["exports"] = [
+ "Afonso",
+ "Alexandre",
+ "André",
+ "Ângelo",
+ "António",
+ "Artur",
+ "Benjamim",
+ "Bernardo",
+ "Bruno",
+ "Carlos",
+ "César",
+ "Cristiano",
+ "Daniel",
+ "David",
+ "Dinis",
+ "Diogo",
+ "Duarte",
+ "Edgar",
+ "Eduardo",
+ "Elias",
+ "Emanuel",
+ "Fábio",
+ "Feliciano",
+ "Fernando",
+ "Filipe",
+ "Francisco",
+ "Frederico",
+ "Gabriel",
+ "Gaspar",
+ "Gil",
+ "Gonçalo",
+ "Guilherme",
+ "Gustavo",
+ "Hélio",
+ "Henrique",
+ "Hugo",
+ "Igor",
+ "Ígor",
+ "Isac",
+ "Ivan",
+ "Ivo",
+ "Jaime",
+ "João",
+ "Joaquim",
+ "Jorge",
+ "José",
+ "Josué",
+ "Júlio",
+ "Leandro",
+ "Leonardo",
+ "Lourenço",
+ "Lucas",
+ "Luís",
+ "Manel",
+ "Manuel",
+ "Marcelo",
+ "Marco",
+ "Marcos",
+ "Mário",
+ "Martim",
+ "Mateus",
+ "Matias",
+ "Mauro",
+ "Micael",
+ "Miguel",
+ "Moisés",
+ "Norberto",
+ "Nuno",
+ "Paulo",
+ "Pedro",
+ "Rafael",
+ "Raul",
+ "Renato",
+ "Ricardo",
+ "Roberto",
+ "Rodrigo",
+ "Romeu",
+ "Rúben",
+ "Rui",
+ "Salvador",
+ "Samuel",
+ "Sandro",
+ "Santiago",
+ "Sebastião",
+ "Sérgio",
+ "Simão",
+ "Tiago",
+ "Tomás",
+ "Tomé",
+ "Valentim",
+ "Valter",
+ "Vasco",
+ "Vicente",
+ "Vítor",
+ "Xavier"
+];
diff --git a/lib/locales/pt_PT/name/male_prefix.js b/lib/locales/pt_PT/name/male_prefix.js
new file mode 100644
index 00000000..55107c70
--- /dev/null
+++ b/lib/locales/pt_PT/name/male_prefix.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "Sr.",
+ "Dr.",
+ "Prof.",
+ "Eng.º",
+];
diff --git a/lib/locales/pt_PT/name/name.js b/lib/locales/pt_PT/name/name.js
new file mode 100644
index 00000000..c7aaed0a
--- /dev/null
+++ b/lib/locales/pt_PT/name/name.js
@@ -0,0 +1,7 @@
+module["exports"] = [
+ "#{first_name} #{last_name}",
+ "#{male_first_name} #{last_name}",
+ "#{female_first_name} #{last_name}",
+ "#{male_prefix} #{male_first_name} #{last_name}",
+ "#{female_prefix} #{female_first_name} #{last_name}"
+];
diff --git a/lib/locales/pt_PT/name/prefix.js b/lib/locales/pt_PT/name/prefix.js
new file mode 100644
index 00000000..898dd9b7
--- /dev/null
+++ b/lib/locales/pt_PT/name/prefix.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#{female_prefix}",
+ "#{male_prefix}"
+];
diff --git a/lib/locales/pt_PT/name/suffix.js b/lib/locales/pt_PT/name/suffix.js
new file mode 100644
index 00000000..4464cf4b
--- /dev/null
+++ b/lib/locales/pt_PT/name/suffix.js
@@ -0,0 +1,2 @@
+module["exports"] = [
+];
diff --git a/lib/locales/pt_PT/phone_number/formats.js b/lib/locales/pt_PT/phone_number/formats.js
new file mode 100644
index 00000000..1040d5fd
--- /dev/null
+++ b/lib/locales/pt_PT/phone_number/formats.js
@@ -0,0 +1,6 @@
+module["exports"] = [
+ "+351 2########",
+ "+351 91#######",
+ "+351 93#######",
+ "+351 96#######"
+];
diff --git a/lib/locales/pt_PT/phone_number/index.js b/lib/locales/pt_PT/phone_number/index.js
new file mode 100644
index 00000000..8d35e011
--- /dev/null
+++ b/lib/locales/pt_PT/phone_number/index.js
@@ -0,0 +1,3 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
diff --git a/lib/locales/ru/commerce/department.js b/lib/locales/ru/commerce/department.js
index db4ed972..53e953bc 100644
--- a/lib/locales/ru/commerce/department.js
+++ b/lib/locales/ru/commerce/department.js
@@ -19,5 +19,8 @@ module["exports"] = [
"Спорт",
"туризм",
"Автомобильное",
+ "Галантерея",
+ "Меха",
+ "Пряжа",
"промышленное"
];
diff --git a/lib/locales/ru/commerce/product_name.js b/lib/locales/ru/commerce/product_name.js
index 1464e40c..a7c34742 100644
--- a/lib/locales/ru/commerce/product_name.js
+++ b/lib/locales/ru/commerce/product_name.js
@@ -6,8 +6,10 @@ module["exports"] = {
"Интеллектуальный",
"Великолепный",
"Невероятный",
+ "Свободный",
+ "Большой",
"Фантастический",
- "Практчиный",
+ "Практичный",
"Лоснящийся",
"Потрясающий"
],
@@ -18,6 +20,10 @@ module["exports"] = {
"Пластиковый",
"Хлопковый",
"Гранитный",
+ "Кожанный",
+ "Неодимовый",
+ "Меховой",
+ "Натуральный",
"Резиновый"
],
"product": [
@@ -29,6 +35,17 @@ module["exports"] = {
"Стол",
"Свитер",
"Ремень",
+ "Ножницы",
+ "Носки",
+ "Майка",
+ "Кепка",
+ "Куртка",
+ "Плащ",
+ "Сабо",
+ "Шарф",
+ "Клатч",
+ "Кошелек",
+ "Портмоне",
"Ботинок"
]
};
diff --git a/lib/locales/ru/company/prefix.js b/lib/locales/ru/company/prefix.js
index 722a8d7e..10c07f44 100644
--- a/lib/locales/ru/company/prefix.js
+++ b/lib/locales/ru/company/prefix.js
@@ -3,6 +3,7 @@ module["exports"] = [
"ООО",
"ЗАО",
"ОАО",
+ "ПАО",
"НКО",
"ТСЖ",
"ОП"
diff --git a/lib/locales/ru/hacker/abbreviation.js b/lib/locales/ru/hacker/abbreviation.js
index 05609fe9..ca2152b1 100644
--- a/lib/locales/ru/hacker/abbreviation.js
+++ b/lib/locales/ru/hacker/abbreviation.js
@@ -20,7 +20,8 @@ module["exports"] = [
"XML",
"EXE",
"COM",
- "HDD",
+ "НМЖД",
+ "ПЗУ",
"SMTP",
"SMS",
"USB",
diff --git a/lib/locales/ru/hacker/ingverb.js b/lib/locales/ru/hacker/ingverb.js
index 7d4ac451..c9cd84cf 100644
--- a/lib/locales/ru/hacker/ingverb.js
+++ b/lib/locales/ru/hacker/ingverb.js
@@ -1,9 +1,12 @@
module["exports"] = [
"резервное копирование",
"обход",
+ "архивирование",
"взлом",
+ "шифрование",
"переопределение",
"сжатие",
+ "скачивание",
"копирование",
"навигация",
"индексирование",
diff --git a/lib/locales/ru/hacker/noun.js b/lib/locales/ru/hacker/noun.js
index ca899b35..c67cbd53 100644
--- a/lib/locales/ru/hacker/noun.js
+++ b/lib/locales/ru/hacker/noun.js
@@ -5,6 +5,9 @@ module["exports"] = [
"интерфейс",
"микрочип",
"код",
+ "парсер",
+ "сокет",
+ "кортеж",
"порт",
"ключ",
"массив",
diff --git a/lib/locales/ru/hacker/verb.js b/lib/locales/ru/hacker/verb.js
index 86606699..cef4a734 100644
--- a/lib/locales/ru/hacker/verb.js
+++ b/lib/locales/ru/hacker/verb.js
@@ -4,11 +4,15 @@ module["exports"] = [
"взломать",
"переопределить",
"сжать",
+ "зашифровать",
+ "импортировать",
+ "экспортировать",
"копировать",
"навигировать",
"индексировать",
"соединить",
"генерировать",
+ "распарсить",
"квантифицировать",
"вычислить",
"синтезировать",
diff --git a/lib/locales/sv/name/first_name_women.js b/lib/locales/sv/name/first_name_women.js
index 4d2f751c..8ba4a89c 100644
--- a/lib/locales/sv/name/first_name_women.js
+++ b/lib/locales/sv/name/first_name_women.js
@@ -1,6 +1,20 @@
module["exports"] = [
- "Maria",
+ "Astrid",
"Anna",
+ "Alice",
+ "Amanda",
+ "Ann",
+ "Agneta",
+ "Anette",
+ "Anneli",
+ "Alexandra",
+ "Agnes",
+ "Anne",
+ "Alva",
+ "Alma",
+ "Angelica",
+ "Ann-Marie",
+ "Maria",
"Margareta",
"Elisabeth",
"Eva",
@@ -8,5 +22,8 @@ module["exports"] = [
"Kristina",
"Karin",
"Elisabet",
- "Marie"
-];
+ "Marie",
+ "Lotta",
+ "Ronja",
+ "Veronica"
+]; \ No newline at end of file
diff --git a/lib/locales/zu_ZA/address/default_country.js b/lib/locales/zu_ZA/address/default_country.js
new file mode 100644
index 00000000..a31d7565
--- /dev/null
+++ b/lib/locales/zu_ZA/address/default_country.js
@@ -0,0 +1,3 @@
+module["exports"] = [
+ "South Africa"
+];
diff --git a/lib/locales/zu_ZA/address/index.js b/lib/locales/zu_ZA/address/index.js
new file mode 100644
index 00000000..44dff02a
--- /dev/null
+++ b/lib/locales/zu_ZA/address/index.js
@@ -0,0 +1,4 @@
+var address = {};
+module['exports'] = address;
+address.default_country = require("./default_country");
+address.postcode = require("./postcode");
diff --git a/lib/locales/zu_ZA/address/postcode.js b/lib/locales/zu_ZA/address/postcode.js
new file mode 100644
index 00000000..a437640e
--- /dev/null
+++ b/lib/locales/zu_ZA/address/postcode.js
@@ -0,0 +1,4 @@
+module["exports"] = [
+ "#####",
+ "####"
+];
diff --git a/lib/locales/zu_ZA/cell_phone/formats.js b/lib/locales/zu_ZA/cell_phone/formats.js
new file mode 100644
index 00000000..f0f561fd
--- /dev/null
+++ b/lib/locales/zu_ZA/cell_phone/formats.js
@@ -0,0 +1,8 @@
+module["exports"] = [
+ "082 ### ####",
+ "084 ### ####",
+ "083 ### ####",
+ "065 ### ####",
+ "082#######",
+ "082 #######"
+];
diff --git a/lib/locales/zu_ZA/cell_phone/index.js b/lib/locales/zu_ZA/cell_phone/index.js
new file mode 100644
index 00000000..8de997ba
--- /dev/null
+++ b/lib/locales/zu_ZA/cell_phone/index.js
@@ -0,0 +1,3 @@
+var cell_phone = {};
+module['exports'] = cell_phone;
+cell_phone.formats = require("./formats");
diff --git a/lib/locales/zu_ZA/company/index.js b/lib/locales/zu_ZA/company/index.js
new file mode 100644
index 00000000..ddd41f55
--- /dev/null
+++ b/lib/locales/zu_ZA/company/index.js
@@ -0,0 +1,3 @@
+var company = {};
+module['exports'] = company;
+company.suffix = require("./suffix");
diff --git a/lib/locales/zu_ZA/company/suffix.js b/lib/locales/zu_ZA/company/suffix.js
new file mode 100644
index 00000000..f7163b89
--- /dev/null
+++ b/lib/locales/zu_ZA/company/suffix.js
@@ -0,0 +1,5 @@
+module["exports"] = [
+ "Pty Ltd",
+ "Ltd",
+ "CC"
+];
diff --git a/lib/locales/zu_ZA/index.js b/lib/locales/zu_ZA/index.js
new file mode 100644
index 00000000..978d9087
--- /dev/null
+++ b/lib/locales/zu_ZA/index.js
@@ -0,0 +1,8 @@
+var en_ZA = {};
+module['exports'] = en_ZA;
+en_ZA.title = "South Africa (Zulu)";
+en_ZA.address = require("./address");
+en_ZA.internet = require("./internet");
+en_ZA.phone_number = require("./phone_number");
+en_ZA.cell_phone = require("./cell_phone");
+en_ZA.company = require("./company");
diff --git a/lib/locales/zu_ZA/internet/domain_suffix.js b/lib/locales/zu_ZA/internet/domain_suffix.js
new file mode 100644
index 00000000..66ac6364
--- /dev/null
+++ b/lib/locales/zu_ZA/internet/domain_suffix.js
@@ -0,0 +1,7 @@
+module["exports"] = [
+ "co.za",
+ "com",
+ "org.za",
+ "info",
+ "net.za"
+];
diff --git a/lib/locales/zu_ZA/internet/index.js b/lib/locales/zu_ZA/internet/index.js
new file mode 100644
index 00000000..abfa2480
--- /dev/null
+++ b/lib/locales/zu_ZA/internet/index.js
@@ -0,0 +1,3 @@
+var internet = {};
+module['exports'] = internet;
+internet.domain_suffix = require("./domain_suffix");
diff --git a/lib/locales/zu_ZA/name/female_first_name.js b/lib/locales/zu_ZA/name/female_first_name.js
new file mode 100644
index 00000000..84e61fca
--- /dev/null
+++ b/lib/locales/zu_ZA/name/female_first_name.js
@@ -0,0 +1,52 @@
+module["exports"] = [
+"Ayanda",
+"Uluthando",
+"Nofoto",
+"Yibanathi",
+"Thadie",
+"Ulwazi",
+"Lerato",
+"Amahle",
+"Khulekani",
+"Jabulile",
+"Mthunzi",
+"Sindisiwe",
+"Inyoni",
+"Ntombizodwa",
+"Zobuhle",
+"Samukelisiwe",
+"Nonhlanhla",
+"Nhlakanipho",
+"Liyana",
+"Nonjabulo",
+"Ntokozo",
+"Nokuthula",
+"Buhle",
+"Isisa",
+"Thobeka",
+"Thabisa",
+"Zanele",
+"Sizani",
+"Nkosingiphile",
+"Mhambi",
+"Nomvula",
+"Thulisile",
+"Lukhona",
+"Mbalienhle",
+"Sizakele",
+"Khethiwe",
+"Nolwazi",
+"Sinenhlanhla",
+"Ayize",
+"Duduzile",
+"Busisiwe",
+"Hlengiwe",
+"Jabulile",
+"Khanyisile",
+"Nandi",
+"Ndondoloza",
+"Nozipho",
+"Nonkululeko",
+"Sibongile",
+"Siphephelo"
+]; \ No newline at end of file
diff --git a/lib/locales/zu_ZA/name/first_name.js b/lib/locales/zu_ZA/name/first_name.js
new file mode 100644
index 00000000..a76e7588
--- /dev/null
+++ b/lib/locales/zu_ZA/name/first_name.js
@@ -0,0 +1,102 @@
+module["exports"] = [
+ "Ayanda",
+ "Uluthando",
+ "Nofoto",
+ "Yibanathi",
+ "Thadie",
+ "Ulwazi",
+ "Lerato",
+ "Amahle",
+ "Khulekani",
+ "Jabulile",
+ "Mthunzi",
+ "Sindisiwe",
+ "Inyoni",
+ "Ntombizodwa",
+ "Zobuhle",
+ "Samukelisiwe",
+ "Nonhlanhla",
+ "Nhlakanipho",
+ "Liyana",
+ "Nonjabulo",
+ "Ntokozo",
+ "Nokuthula",
+ "Buhle",
+ "Isisa",
+ "Thobeka",
+ "Thabisa",
+ "Zanele",
+ "Sizani",
+ "Nkosingiphile",
+ "Mhambi",
+ "Nomvula",
+ "Thulisile",
+ "Lukhona",
+ "Mbalienhle",
+ "Sizakele",
+ "Khethiwe",
+ "Nolwazi",
+ "Sinenhlanhla",
+ "Ayize",
+ "Duduzile",
+ "Busisiwe",
+ "Hlengiwe",
+ "Jabulile",
+ "Khanyisile",
+ "Nandi",
+ "Ndondoloza",
+ "Nozipho",
+ "Nonkululeko",
+ "Sibongile",
+ "Siphephelo",
+ "Bonginkosi",
+ "Kagiso",
+ "Bhekizizwe",
+ "Bhekumbuso",
+ "Shaka",
+ "Funani",
+ "Kgabu",
+ "Solomon",
+ "Gatsha",
+ "Langa",
+ "Phila",
+ "Msizi",
+ "Nkosiyabo",
+ "Linda",
+ "Mpilo",
+ "Siyanda",
+ "Nkanyezi",
+ "Bafana",
+ "Lwandle",
+ "Sfiso",
+ "Thulani",
+ "Thando",
+ "Sanele",
+ "Anele",
+ "Lungelo",
+ "Dumisani",
+ "Bangizwe",
+ "Fanyana",
+ "Bhekimuzi",
+ "Mandla",
+ "Maphikelela",
+ "Mpumelelo",
+ "Mthunzi",
+ "Philani",
+ "Musawenkosi",
+ "Nkosenye",
+ "Nkosinhle",
+ "Phiwokwakhe",
+ "Sifiso",
+ "Zithulele",
+ "Sithembiso",
+ "Sipho",
+ "Siphiwe",
+ "Sibusiso",
+ "Velaphi",
+ "Thamsanqa",
+ "Vusumuzi",
+ "Themba",
+ "Zenzele",
+ "Ndleleni"
+];
diff --git a/lib/locales/zu_ZA/name/index.js b/lib/locales/zu_ZA/name/index.js
new file mode 100644
index 00000000..290e3cc2
--- /dev/null
+++ b/lib/locales/zu_ZA/name/index.js
@@ -0,0 +1,6 @@
+var name = {};
+module['exports'] = name;
+name.male_first_name = require("./male_first_name");
+name.female_first_name = require("./female_first_name");
+name.first_name = require("./first_name");
+name.last_name = require("./last_name"); \ No newline at end of file
diff --git a/lib/locales/zu_ZA/name/last_name.js b/lib/locales/zu_ZA/name/last_name.js
new file mode 100644
index 00000000..2ae7873b
--- /dev/null
+++ b/lib/locales/zu_ZA/name/last_name.js
@@ -0,0 +1,102 @@
+module["exports"] = [
+"Bengu",
+"Bhengu",
+"Buthelezi",
+"Bhuyeni",
+"Bhembe",
+"Bhengani",
+"Bayeni",
+"Chiliza",
+"Cele",
+"Cebekhulu",
+"Dingiswayo",
+"Dlamini",
+"Dube",
+"Fuze",
+"Gwacela",
+"Gigaba",
+"Gumede",
+"Guliwe",
+"Gwala",
+"Gama",
+"Gumede",
+"Hlongwa",
+"Luthuli",
+"Msibi",
+"Mthethwa",
+"Mashinini",
+"Ndebele",
+"Ngubane",
+"Nondlela",
+"Nzimande",
+"Radebe",
+"Seme",
+"Senzangakhona",
+"Sondisa",
+"Zuma",
+"Dhlomo",
+"Nhleko",
+"Mabizela",
+"Khumalo",
+"Kunene",
+"Khawula",
+"Khuzwayo",
+"Lamula",
+"Lembede",
+"Lamula",
+"Mkhatshwa",
+"Moseley",
+"Mavundla",
+"Magoza",
+"Malinga",
+"Mbatha",
+"Mqwebu",
+"Mbende",
+"Maduma",
+"Mgenge",
+"Mehloluhlaza",
+"Maphisa",
+"Mfeka",
+"Mfumu",
+"Musi",
+"Mtolo",
+"Nonyana",
+"Ngema",
+"Ngwazi",
+"Nozulu",
+"Ntombela",
+"Ntanzi",
+"Mbuso",
+"Ngcolosi",
+"Gabhezi",
+"Nsele",
+"Nyanda",
+"Thusi",
+"Mbatha",
+"Biyela",
+"Gumede",
+"Nomvethe",
+"Ndandali",
+"Ncusi",
+"Sibiya",
+"Siyaya",
+"Sothole",
+"Sokhela",
+"Sithuli",
+"Shezi",
+"Siwele",
+"Tshabalala",
+"Thoyana",
+"Thumbeza",
+"Delazy",
+"Zungu",
+"Mthembu",
+"Vilakazi",
+"Vezi",
+"Mabhida",
+"Wosiyane",
+"Yengwa",
+"Zondo",
+"Zondi",
+"Zubane"
+]; \ No newline at end of file
diff --git a/lib/locales/zu_ZA/name/male_first_name.js b/lib/locales/zu_ZA/name/male_first_name.js
new file mode 100644
index 00000000..5bee6b76
--- /dev/null
+++ b/lib/locales/zu_ZA/name/male_first_name.js
@@ -0,0 +1,52 @@
+module["exports"] = [
+ "Bonginkosi",
+ "Kagiso",
+ "Bhekizizwe",
+ "Bhekumbuso",
+ "Shaka",
+ "Funani",
+ "Kgabu",
+ "Solomon",
+ "Gatsha",
+ "Langa",
+ "Phila",
+ "Msizi",
+ "Nkosiyabo",
+ "Linda",
+ "Mpilo",
+ "Siyanda",
+ "Nkanyezi",
+ "Bafana",
+ "Lwandle",
+ "Sfiso",
+ "Thulani",
+ "Thando",
+ "Sanele",
+ "Anele",
+ "Lungelo",
+ "Dumisani",
+ "Bangizwe",
+ "Fanyana",
+ "Bhekimuzi",
+ "Mandla",
+ "Maphikelela",
+ "Mpumelelo",
+ "Mthunzi",
+ "Philani",
+ "Musawenkosi",
+ "Nkosenye",
+ "Nkosinhle",
+ "Phiwokwakhe",
+ "Sifiso",
+ "Zithulele",
+ "Sithembiso",
+ "Sipho",
+ "Siphiwe",
+ "Sibusiso",
+ "Velaphi",
+ "Thamsanqa",
+ "Vusumuzi",
+ "Themba",
+ "Zenzele",
+ "Ndleleni"
+ ]; \ No newline at end of file
diff --git a/lib/locales/zu_ZA/phone_number/formats.js b/lib/locales/zu_ZA/phone_number/formats.js
new file mode 100644
index 00000000..e33e5cbc
--- /dev/null
+++ b/lib/locales/zu_ZA/phone_number/formats.js
@@ -0,0 +1,11 @@
+module["exports"] = [
+ "01# ### #####",
+ "02# ### #####",
+ "03# ### #####",
+ "04# ### #####",
+ "05# ### #####",
+ "0800 ### ###",
+ "0860 ### ###",
+ "01#########",
+ "01# ########",
+];
diff --git a/lib/locales/zu_ZA/phone_number/index.js b/lib/locales/zu_ZA/phone_number/index.js
new file mode 100644
index 00000000..8d35e011
--- /dev/null
+++ b/lib/locales/zu_ZA/phone_number/index.js
@@ -0,0 +1,3 @@
+var phone_number = {};
+module['exports'] = phone_number;
+phone_number.formats = require("./formats");
diff --git a/lib/phone_number.js b/lib/phone_number.js
index 651c7ada..2875a793 100644
--- a/lib/phone_number.js
+++ b/lib/phone_number.js
@@ -10,6 +10,7 @@ var Phone = function (faker) {
*
* @method faker.phone.phoneNumber
* @param {string} format
+ * @memberOf faker.phone
*/
self.phoneNumber = function (format) {
format = format || faker.phone.phoneFormats();
@@ -22,6 +23,7 @@ var Phone = function (faker) {
*
* @method faker.phone.phoneFormatsArrayIndex
* @param phoneFormatsArrayIndex
+ * @memberOf faker.phone
*/
self.phoneNumberFormat = function (phoneFormatsArrayIndex) {
phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0;
@@ -41,4 +43,4 @@ var Phone = function (faker) {
};
-module['exports'] = Phone; \ No newline at end of file
+module['exports'] = Phone;
diff --git a/lib/random.js b/lib/random.js
index 1f408fe0..6ee65493 100644
--- a/lib/random.js
+++ b/lib/random.js
@@ -18,7 +18,7 @@ function Random (faker, seed) {
* returns a single random number based on a max number or range
*
* @method faker.random.number
- * @param {mixed} options
+ * @param {mixed} options {min, max, precision}
*/
this.number = function (options) {
@@ -57,6 +57,29 @@ function Random (faker, seed) {
}
/**
+ * returns a single random floating-point number based on a max number or range
+ *
+ * @method faker.random.float
+ * @param {mixed} options
+ */
+ this.float = function (options) {
+ if (typeof options === "number") {
+ options = {
+ precision: options
+ };
+ }
+ options = options || {};
+ var opts = {};
+ for (var p in options) {
+ opts[p] = options[p];
+ }
+ if (typeof opts.precision === 'undefined') {
+ opts.precision = 0.01;
+ }
+ return faker.random.number(opts);
+ }
+
+ /**
* takes an array and returns a random element of the array
*
* @method faker.random.arrayElement
diff --git a/lib/unique.js b/lib/unique.js
index 4422a942..70d038fa 100644
--- a/lib/unique.js
+++ b/lib/unique.js
@@ -5,12 +5,34 @@ var uniqueExec = require('../vendor/unique');
*/
function Unique (faker) {
+ // initialize unique module class variables
+
+ // maximum time unique.exec will attempt to run before aborting
+ var maxTime = 10;
+
+ // maximum retries unique.exec will recurse before abortings ( max loop depth )
+ var maxRetries = 10;
+
+ // time the script started
+ // var startTime = 0;
+
/**
* unique
*
* @method unique
*/
- this.unique = uniqueExec.exec;
+ this.unique = function unique (method, args, opts) {
+ opts = opts || {};
+ opts.startTime = new Date().getTime();
+ if (typeof opts.maxTime !== 'number') {
+ opts.maxTime = maxTime;
+ }
+ if (typeof opts.maxRetries !== 'number') {
+ opts.maxRetries = maxRetries;
+ }
+ opts.currentIterations = 0;
+ return uniqueExec.exec(method, args, opts);
+ }
}
-module['exports'] = Unique;
+module['exports'] = Unique; \ No newline at end of file