From d4c79db5201b9998bdf426ee9cf753f49aa64cb6 Mon Sep 17 00:00:00 2001 From: Eric Meisel Date: Thu, 20 Aug 2020 20:22:00 -0500 Subject: [PATCH] vi and zh instances (#85) --- src/main/resources/vi.conf | 5 ++ src/main/resources/vi/address.conf | 20 +++++++ src/main/resources/vi/company.conf | 11 ++++ src/main/resources/vi/internet.conf | 3 + src/main/resources/vi/lorem.conf | 9 +++ src/main/resources/vi/name.conf | 26 ++++++++ src/main/resources/vi/phone.conf | 4 ++ src/main/resources/zh_CN.conf | 3 + src/main/resources/zh_CN/address.conf | 66 +++++++++++++++++++++ src/main/resources/zh_CN/name.conf | 15 +++++ src/main/resources/zh_CN/phone.conf | 4 ++ src/main/resources/zh_TW.conf | 3 + src/main/resources/zh_TW/address.conf | 63 ++++++++++++++++++++ src/main/resources/zh_TW/name.conf | 15 +++++ src/main/resources/zh_TW/phone.conf | 4 ++ src/main/scala/faker/Faker.scala | 3 + src/main/scala/faker/ResourceLoader.scala | 3 + src/main/scala/faker/SupportedLocales.scala | 3 + src/test/scala/faker/FakerSpec_vi.scala | 7 +++ src/test/scala/faker/FakerSpec_zh_CN.scala | 7 +++ src/test/scala/faker/FakerSpec_zh_TW.scala | 7 +++ 21 files changed, 281 insertions(+) create mode 100644 src/main/resources/vi.conf create mode 100644 src/main/resources/vi/address.conf create mode 100644 src/main/resources/vi/company.conf create mode 100644 src/main/resources/vi/internet.conf create mode 100644 src/main/resources/vi/lorem.conf create mode 100644 src/main/resources/vi/name.conf create mode 100644 src/main/resources/vi/phone.conf create mode 100644 src/main/resources/zh_CN.conf create mode 100644 src/main/resources/zh_CN/address.conf create mode 100644 src/main/resources/zh_CN/name.conf create mode 100644 src/main/resources/zh_CN/phone.conf create mode 100644 src/main/resources/zh_TW.conf create mode 100644 src/main/resources/zh_TW/address.conf create mode 100644 src/main/resources/zh_TW/name.conf create mode 100644 src/main/resources/zh_TW/phone.conf create mode 100644 src/test/scala/faker/FakerSpec_vi.scala create mode 100644 src/test/scala/faker/FakerSpec_zh_CN.scala create mode 100644 src/test/scala/faker/FakerSpec_zh_TW.scala diff --git a/src/main/resources/vi.conf b/src/main/resources/vi.conf new file mode 100644 index 00000000..b966c840 --- /dev/null +++ b/src/main/resources/vi.conf @@ -0,0 +1,5 @@ +include "vi/name.conf" +include "vi/internet.conf" +include "vi/phone.conf" +include "vi/address.conf" +include "vi/company.conf" \ No newline at end of file diff --git a/src/main/resources/vi/address.conf b/src/main/resources/vi/address.conf new file mode 100644 index 00000000..9da51ae7 --- /dev/null +++ b/src/main/resources/vi/address.conf @@ -0,0 +1,20 @@ +include "name.conf" + +address { + postal-code-builder = {options = [{parts = [{type = "string-regex-part", value = "[A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}"}]}]} + city-names = ["Bắc Giang", "Bắc Kạn", "Bắc Ninh", "Cao Bằng", "Điện Biên", "Hà Giang", "Hà Nam", "Hà Tây", + "Hải Dương", "TP Hải Phòng", "Hòa Bình", "Hưng Yên", "Lai Châu", "Lào Cai", "Lạng Sơn", "Nam Định", + "Ninh Bình", "Phú Thọ", "Quảng Ninh", "Sơn La", "Thái Bình", "Thái Nguyên", "Tuyên Quang", "Vĩnh Phúc", + "Yên Bái", "TP Đà Nẵng", "Bình Định", "Đắk Lắk", "Đắk Nông", "Gia Lai", "Hà Tĩnh", "Khánh Hòa", "Kon Tum", + "Nghệ An", "Phú Yên", "Quảng Bình", "Quảng Nam", "Quảng Ngãi", "Quảng Trị", "Thanh Hóa", "Thừa Thiên Huế", + "TP TP. Hồ Chí Minh", "An Giang", "Bà Rịa Vũng Tàu", "Bạc Liêu", "Bến Tre", "Bình Dương", "Bình Phước", + "Bình Thuận", "Cà Mau", "TP Cần Thơ", "Đồng Nai", "Đồng Tháp", "Hậu Giang", "Kiên Giang", "Lâm Đồng", + "Long An", "Ninh Thuận", "Sóc Trăng", "Tây Ninh", "Tiền Giang", "Trà Vinh", "Vĩnh Long"] + city-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${address.city-names}}]} + ] + } + + default-countries = [{code = "VI", name = "Việt Nam"}] +} \ No newline at end of file diff --git a/src/main/resources/vi/company.conf b/src/main/resources/vi/company.conf new file mode 100644 index 00000000..cce72b42 --- /dev/null +++ b/src/main/resources/vi/company.conf @@ -0,0 +1,11 @@ +include "name.conf" + +company { + prefixes = ["Công ty", "Cty TNHH", "Cty", "Cửa hàng", "Trung tâm", "Chi nhánh"] + + company-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${company.prefixes}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/vi/internet.conf b/src/main/resources/vi/internet.conf new file mode 100644 index 00000000..c4af03df --- /dev/null +++ b/src/main/resources/vi/internet.conf @@ -0,0 +1,3 @@ +internet { + domain-suffixes = [com, net, info, vn, com.vn] +} \ No newline at end of file diff --git a/src/main/resources/vi/lorem.conf b/src/main/resources/vi/lorem.conf new file mode 100644 index 00000000..a9674c7d --- /dev/null +++ b/src/main/resources/vi/lorem.conf @@ -0,0 +1,9 @@ +lorem.words = ["đã", "đang", "ừ", "ờ", "á", "không", "biết", "gì", "hết", "đâu", "nha", + "thế", "thì", "là", "đánh", "đá", "đập", "phá", "viết", "vẽ", "tô", "thuê", + "mướn", "mượn", "mua", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", + "chín", "mười", "thôi", "việc", "nghỉ", "làm", "nhà", "cửa", "xe", "đạp", "ác", + "độc", "khoảng", "khoan", "thuyền", "tàu", "bè", "lầu", "xanh", "đỏ", "tím", "vàng", + "kim", "chỉ", "khâu", "may", "vá", "em", "anh", "yêu", "thương", "thích", "con", "cái", + "bàn", "ghế", "tủ", "quần", "áo", "nón", "dép", "giày", "lỗi", "được", "ghét", "giết", + "chết", "hết", "tôi", "bạn", "tui", "trời", "trăng", "mây", "gió", "máy", "hàng", "hóa", + "leo", "núi", "bơi", "biển", "chìm", "xuồng", "nước", "ngọt", "ruộng", "đồng", "quê", "hương"] \ No newline at end of file diff --git a/src/main/resources/vi/name.conf b/src/main/resources/vi/name.conf new file mode 100644 index 00000000..bdeed05d --- /dev/null +++ b/src/main/resources/vi/name.conf @@ -0,0 +1,26 @@ +name { + first.names = ["Phạm", "Nguyễn", "Trần", "Lê", "Lý", "Hoàng", "Phan", "Vũ", "Tăng", + "Đặng", "Bùi", "Đỗ", "Hồ", "Ngô", "Dương", "Đào", "Đoàn", "Vương", + "Trịnh", "Đinh", "Lâm", "Phùng", "Mai", "Tô", "Trương", "Hà"] + last.names = ["Nam", "Trung", "Thanh", "Thị", "Văn", "Dương", "Tăng", "Quốc", "Như", + "Phạm", "Nguyễn", "Trần", "Lê", "Lý", "Hoàng", "Phan", "Vũ", "Tăng", + "Đặng", "Bùi", "Đỗ", "Hồ", "Ngô", "Dương", "Đào", "Đoàn", "Vương", + "Trịnh", "Đinh", "Lâm", "Phùng", "Mai", "Tô", "Trương", "Hà", + "Vinh", "Nhung", "Hòa", "Tiến", "Tâm", "Bửu", "Loan", "Hiền", "Hải", + "Vân", "Kha", "Minh", "Nhân", "Triệu", "Tuân", "Hữu", "Đức", "Phú", "Khoa", + "Thắng", "Sơn", "Dung", "Tú", "Trinh", "Thảo", "Sa", "Kim", "Long", "Thi", + "Cường", "Ngọc", "Sinh", "Khang", "Phong", "Thắm", "Thu", "Thủy", "Nhàn"] + + full-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]}, + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]}, + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]} + ] + } + full-name-with-middle-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/vi/phone.conf b/src/main/resources/vi/phone.conf new file mode 100644 index 00000000..2a27ac4f --- /dev/null +++ b/src/main/resources/vi/phone.conf @@ -0,0 +1,4 @@ +phone { + phone-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["01#### #####", "01### ######", "01#1 ### ####", "011# ### ####", "02# #### ####", "03## ### ####", "055 #### ####", "056 #### ####", "0800 ### ####", "08## ### ####", "09## ### ####", "016977 ####", "01### #####", "0500 ######", "0800 ######"]}]}]} + cell-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["012# ### ####", "0162 ### ####", "0163 ### ####", "0164 ### ####", "0165 ### ####", "0166 ### ####", "0167 ### ####", "0168 ### ####", "0169 ### ####", "0186 ### ####", "0188 ### ####", "0199 ### ####", "0866 ### ###", "0868 ### ###", "0869 ### ###", "088# ### ###", "09## ### ###"]}]}]} +} \ No newline at end of file diff --git a/src/main/resources/zh_CN.conf b/src/main/resources/zh_CN.conf new file mode 100644 index 00000000..c86a2b95 --- /dev/null +++ b/src/main/resources/zh_CN.conf @@ -0,0 +1,3 @@ +include "zh_CN/name.conf" +include "zh_CN/phone.conf" +include "zh_CN/address.conf" \ No newline at end of file diff --git a/src/main/resources/zh_CN/address.conf b/src/main/resources/zh_CN/address.conf new file mode 100644 index 00000000..4b4827d6 --- /dev/null +++ b/src/main/resources/zh_CN/address.conf @@ -0,0 +1,66 @@ +include "name.conf" + +address { + postal-code-builder = {options = [{parts = [{type = "string-part", value = "######"}]}]} + city-names = [海门, 鄂尔多斯, 招远, 舟山, 齐齐哈尔, 盐城, 赤峰, 青岛, 乳山, 金昌, 泉州, 莱西, 日照, 胶南, 南通, 拉萨, 云浮, 梅州, 文登, 上海, 攀枝花, 威海, 承德, 厦门, 汕尾, 潮州, 丹东, 太仓, 曲靖, 烟台, 福州, 瓦房店, 即墨, 抚顺, 玉溪, 张家口, 阳泉, 莱州, 湖州, 汕头, 昆山, 宁波, 湛江, 揭阳, 荣成, 连云港, 葫芦岛, 常熟, 东莞, 河源, 淮安, 泰州, 南宁, 营口, 惠州, 江阴, 蓬莱, 韶关, 嘉峪关, 广州, 延安, 太原, 清远, 中山, 昆明, 寿光, 盘锦, 长治, 深圳, 珠海, 宿迁, 咸阳, 铜川, 平度, 佛山, 海口, 江门, 章丘, 肇庆, 大连, 临汾, 吴江, 石嘴山, 沈阳, 苏州, 茂名, 嘉兴, 长春, 胶州, 银川, 张家港, 三门峡, 锦州, 南昌, 柳州, 三亚, 自贡, 吉林, 阳江, 泸州, 西宁, 宜宾, 呼和浩特, 成都, 大同, 镇江, 桂林, 张家界, 宜兴, 北海, 西安, 金坛, 东营, 牡丹江, 遵义, 绍兴, 扬州, 常州, 潍坊, 重庆, 台州, 南京, 滨州, 贵阳, 无锡, 本溪, 克拉玛依, 渭南, 马鞍山, 宝鸡, 焦作, 句容, 北京, 徐州, 衡水, 包头, 绵阳, 乌鲁木齐, 枣庄, 杭州, 淄博, 鞍山, 溧阳, 库尔勒, 安阳, 开封, 济南, 德阳, 温州, 九江, 邯郸, 临安, 兰州, 沧州, 临沂, 南充, 天津, 富阳, 泰安, 诸暨, 郑州, 哈尔滨, 聊城, 芜湖, 唐山, 平顶山, 邢台, 德州, 济宁, 荆州, 宜昌, 义乌, 丽水, 洛阳, 秦皇岛, 株洲, 石家庄, 莱芜, 常德, 保定, 湘潭, 金华, 岳阳, 长沙, 衢州, 廊坊, 菏泽, 合肥, 武汉, 大庆] + city-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${address.city-names}}]} + ] + } + states = [ + { type = "province", abbr = 京, name = 北京市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 沪, name = 上海市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 津, name = 天津市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 渝, name = 重庆市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 黑, name = 黑龙江省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 吉, name = 吉林省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 辽, name = 辽宁省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 蒙, name = 内蒙古, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 冀, name = 河北省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 新, name = 新疆, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 甘, name = 甘肃省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 青, name = 青海省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 陕, name = 陕西省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 宁, name = 宁夏, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 豫, name = 河南省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 鲁, name = 山东省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 晋, name = 山西省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 皖, name = 安徽省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 鄂, name = 湖北省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 湘, name = 湖南省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 苏, name = 江苏省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 川, name = 四川省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 黔, name = 贵州省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 滇, name = 云南省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 桂, name = 广西省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 藏, name = 西藏, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 浙, name = 浙江省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 赣, name = 江西省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 粤, name = 广东省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 闽, name = 福建省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 琼, name = 海南省, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 港, name = 香港, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 澳, name = 澳门, postal-code-builder = ${address.postal-code-builder}} + ] + + building-numbers = ["#", "##", "###", "####", "#####"] + street-suffixes = [巷, 街, 路, 桥, 侬, 旁, 中心, 栋] + street-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.last.names}}, {type = "seq-string-part", value = ${address.street-suffixes}}]} + ] + } + + street-address-builder = { + options = [ + {parts = [{type = "string-builder-part", value = ${address.street-name-builder}}, {type = "seq-string-part", value = ${address.building-numbers}}]} + ] + } + full-address-builder = { + options = [ + {parts = [{type = "string-builder-part", value = ${address.street-name-builder}, suffix = ", "}, {type = "string-builder-part", value = ${address.city-builder}, suffix = ", "}, {type = "string-builder-part", value = ${address.postal-code-builder}, suffix = " "}, {type = "seq-state-name-part", value = ${address.states}}]} + ] + } + default-countries = [{code = "中国", name = "中国"}] +} \ No newline at end of file diff --git a/src/main/resources/zh_CN/name.conf b/src/main/resources/zh_CN/name.conf new file mode 100644 index 00000000..ca7b4371 --- /dev/null +++ b/src/main/resources/zh_CN/name.conf @@ -0,0 +1,15 @@ +name { + first.names = [绍齐, 博文, 梓晨, 胤祥, 瑞霖, 明哲, 天翊, 凯瑞, 健雄, 耀杰, 潇然, 子涵, 越彬, 钰轩, 智辉, 致远, 俊驰, 雨泽, 烨磊, 晟睿, 文昊, 修洁, 黎昕, 远航, 旭尧, 鸿涛, 伟祺, 荣轩, 越泽, 浩宇, 瑾瑜, 皓轩, 擎苍, 擎宇, 志泽, 子轩, 睿渊, 弘文, 哲瀚, 雨泽, 楷瑞, 建辉, 晋鹏, 天磊, 绍辉, 泽洋, 鑫磊, 鹏煊, 昊强, 伟宸, 博超, 君浩, 子骞, 鹏涛, 炎彬, 鹤轩, 越彬, 风华, 靖琪, 明辉, 伟诚, 明轩, 健柏, 修杰, 志泽, 弘文, 峻熙, 嘉懿, 煜城, 懿轩, 烨伟, 苑博, 伟泽, 熠彤, 鸿煊, 博涛, 烨霖, 烨华, 煜祺, 智宸, 正豪, 昊然, 明杰, 立诚, 立轩, 立辉, 峻熙, 弘文, 熠彤, 鸿煊, 烨霖, 哲瀚, 鑫鹏, 昊天, 思聪, 展鹏, 笑愚, 志强, 炫明, 雪松, 思源, 智渊, 思淼, 晓啸, 天宇, 浩然, 文轩, 鹭洋, 振家, 乐驹, 晓博, 文博, 昊焱, 立果, 金鑫, 锦程, 嘉熙, 鹏飞, 子默, 思远, 浩轩, 语堂, 聪健, 明, 文, 果, 思, 鹏, 驰, 涛, 琪, 浩, 航, 彬] + last.names = [王, 李, 张, 刘, 陈, 杨, 黄, 吴, 赵, 周, 徐, 孙, 马, 朱, 胡, 林, 郭, 何, 高, 罗, 郑, 梁, 谢, 宋, 唐, 许, 邓, 冯, 韩, 曹, 曾, 彭, 萧, 蔡, 潘, 田, 董, 袁, 于, 余, 叶, 蒋, 杜, 苏, 魏, 程, 吕, 丁, 沈, 任, 姚, 卢, 傅, 钟, 姜, 崔, 谭, 廖, 范, 汪, 陆, 金, 石, 戴, 贾, 韦, 夏, 邱, 方, 侯, 邹, 熊, 孟, 秦, 白, 江, 阎, 薛, 尹, 段, 雷, 黎, 史, 龙, 陶, 贺, 顾, 毛, 郝, 龚, 邵, 万, 钱, 严, 赖, 覃, 洪, 武, 莫, 孔] + + full-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]} + ] + } + full-name-with-middle-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.first.names}, suffix = " "}, {type = "seq-string-part", value = ${name.last.names}}]} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/zh_CN/phone.conf b/src/main/resources/zh_CN/phone.conf new file mode 100644 index 00000000..50a571ba --- /dev/null +++ b/src/main/resources/zh_CN/phone.conf @@ -0,0 +1,4 @@ +phone { + phone-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["###-########", "####-########", "###########"]}]}]} + cell-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["13#########", "145########", "147########", "150########", "151########", "152########", "153########", "155########", "156########", "157########", "158########", "159########", "170########", "171########", "172########", "173########", "175########", "176########", "177########", "178########", "18#########"]}]}]} +} \ No newline at end of file diff --git a/src/main/resources/zh_TW.conf b/src/main/resources/zh_TW.conf new file mode 100644 index 00000000..833fccab --- /dev/null +++ b/src/main/resources/zh_TW.conf @@ -0,0 +1,3 @@ +include "zh_TW/name.conf" +include "zh_TW/phone.conf" +include "zh_TW/address.conf" \ No newline at end of file diff --git a/src/main/resources/zh_TW/address.conf b/src/main/resources/zh_TW/address.conf new file mode 100644 index 00000000..84cc94b7 --- /dev/null +++ b/src/main/resources/zh_TW/address.conf @@ -0,0 +1,63 @@ +include "name.conf" + +address { + postal-code-builder = {options = [{parts = [{type = "string-part", value = "#####"}]}]} + city-prefixes = [新, 竹, 竹, 新, 關, 峨, 寶, 北, 橫, 芎, 湖, 新, 尖, 五, 苗, 苗, 通, 苑, 竹, 頭, 後, 卓, 西, 頭, 公, 銅, 三, 造, 三, 南, 大, 獅, 泰, 彰, 彰, 員, 和, 鹿, 溪, 二, 田, 北, 花, 芬, 大, 永, 伸, 線, 福, 秀, 埔, 埔, 大, 芳, 竹, 社, 二, 田, 埤, 溪, 南, 南, 埔, 草, 竹, 集, 名, 鹿, 中, 魚, 國, 水, 信, 仁, 雲, 斗, 斗, 虎, 西, 土, 北, 莿, 林, 古, 大, 崙, 二, 麥, 臺, 東, 褒, 四, 口, 水, 元, 嘉, 太, 朴, 布, 大, 民, 溪, 新, 六, 東, 義, 鹿, 水, 中, 竹, 梅, 番, 大, 阿, 屏, 屏, 潮, 東, 恆, 萬, 長, 麟, 九, 里, 鹽, 高, 萬, 內, 竹, 新, 枋, 新, 崁, 林, 南, 佳, 琉, 車, 滿, 枋, 霧, 瑪, 泰, 來, 春, 獅, 牡, 三, 宜, 宜, 羅, 蘇, 頭, 礁, 壯, 員, 冬, 五, 三, 大, 南, 花, 花, 鳳, 玉, 新, 吉, 壽, 秀, 光, 豐, 瑞, 萬, 富, 卓, 臺, 臺, 成, 關, 長, 海, 池, 東, 鹿, 延, 卑, 金, 大, 達, 綠, 蘭, 太, 澎, 馬, 湖, 白, 西, 望, 七, 金, 金, 金, 金, 金, 烈, 烏, 連, 南, 北, 莒, 東] + city-suffixes = [竹縣, 北市, 東鎮, 埔鎮, 西鎮, 眉鄉, 山鄉, 埔鄉, 山鄉, 林鄉, 口鄉, 豐鄉, 石鄉, 峰鄉, 栗縣, 栗市, 霄鎮, 裡鎮, 南鎮, 份鎮, 龍鎮, 蘭鎮, 湖鄉, 屋鄉, 館鄉, 鑼鄉, 義鄉, 橋鄉, 灣鄉, 庄鄉, 湖鄉, 潭鄉, 安鄉, 化縣, 化市, 林鎮, 美鎮, 港鎮, 湖鎮, 林鎮, 中鎮, 斗鎮, 壇鄉, 園鄉, 村鄉, 靖鄉, 港鄉, 西鄉, 興鄉, 水鄉, 心鄉, 鹽鄉, 城鄉, 苑鄉, 塘鄉, 頭鄉, 水鄉, 尾鄉, 頭鄉, 州鄉, 投縣, 投市, 里鎮, 屯鎮, 山鎮, 集鎮, 間鄉, 谷鄉, 寮鄉, 池鄉, 姓鄉, 里鄉, 義鄉, 愛鄉, 林縣, 六市, 南鎮, 尾鎮, 螺鎮, 庫鎮, 港鎮, 桐鄉, 內鄉, 坑鄉, 埤鄉, 背鄉, 崙鄉, 寮鄉, 西鄉, 勢鄉, 忠鄉, 湖鄉, 湖鄉, 林鄉, 長鄉, 義縣, 保市, 子市, 袋鎮, 林鎮, 雄鄉, 口鄉, 港鄉, 腳鄉, 石鄉, 竹鄉, 草鄉, 上鄉, 埔鄉, 崎鄉, 山鄉, 路鄉, 埔鄉, 里山鄉, 東縣, 東市, 州鎮, 港鎮, 春鎮, 丹鄉, 治鄉, 洛鄉, 如鄉, 港鄉, 埔鄉, 樹鄉, 巒鄉, 埔鄉, 田鄉, 埤鄉, 寮鄉, 園鄉, 頂鄉, 邊鄉, 州鄉, 冬鄉, 球鄉, 城鄉, 州鄉, 山鄉, 台鄉, 家鄉, 武鄉, 義鄉, 日鄉, 子鄉, 丹鄉, 地門鄉, 蘭縣, 蘭市, 東鎮, 澳鎮, 城鎮, 溪鄉, 圍鄉, 山鄉, 山鄉, 結鄉, 星鄉, 同鄉, 澳鄉, 蓮縣, 蓮市, 林鎮, 里鎮, 城鄉, 安鄉, 豐鄉, 林鄉, 復鄉, 濱鄉, 穗鄉, 榮鄉, 里鄉, 溪鄉, 東縣, 東市, 功鎮, 山鎮, 濱鄉, 端鄉, 上鄉, 河鄉, 野鄉, 平鄉, 南鄉, 峰鄉, 武鄉, 仁鄉, 島鄉, 嶼鄉, 麻里鄉, 湖縣, 公市, 西鄉, 沙鄉, 嶼鄉, 安鄉, 美鄉, 門縣, 城鎮, 湖鎮, 沙鎮, 寧鄉, 嶼鄉, 坵鄉, 江縣, 竿鄉, 竿鄉, 光鄉, 引鄉] + city-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${address.city-prefixes}}, {type = "seq-string-part", value = ${address.city-suffixes}}]} + ] + } + states = [ + { type = "province", abbr = 臺北市, name = 臺北市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 新北市, name = 新北市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 桃園市, name = 桃園市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 臺中市, name = 臺中市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 臺南市, name = 臺南市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 高雄市, name = 高雄市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 基隆市, name = 基隆市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 新竹市, name = 新竹市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 嘉義市, name = 嘉義市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 新竹縣, name = 新竹縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 竹北市, name = 竹北市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 苗栗縣, name = 苗栗縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 苗栗市, name = 苗栗市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 彰化縣, name = 彰化縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 南投縣, name = 南投縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 南投市, name = 南投市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 雲林縣, name = 雲林縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 斗六市, name = 斗六市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 嘉義縣, name = 嘉義縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 太保市, name = 太保市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 屏東縣, name = 屏東縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 屏東市, name = 屏東市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 宜蘭縣, name = 宜蘭縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 宜蘭市, name = 宜蘭市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 臺東縣, name = 臺東縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 臺東市, name = 臺東市, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 澎湖縣, name = 澎湖縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 金門縣, name = 金門縣, postal-code-builder = ${address.postal-code-builder}}, + { type = "province", abbr = 連江縣, name = 連江縣, postal-code-builder = ${address.postal-code-builder}} + ] + + building-numbers = ["#", "##", "###"] + street-suffixes = [大道, 路, 街, 巷, 弄, 衖] + street-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.last.names}}, {type = "seq-string-part", value = ${address.street-suffixes}}]} + ] + } + + street-address-builder = { + options = [ + {parts = [{type = "string-builder-part", value = ${address.street-name-builder}, suffix = " "}, {type = "seq-string-part", value = ${address.building-numbers}, suffix = " 號"}]} + ] + } + full-address-builder = { + options = [ + {parts = [{type = "string-builder-part", value = ${address.street-name-builder}, suffix = ", "}, {type = "string-builder-part", value = ${address.city-builder}, suffix = ", "}, {type = "string-builder-part", value = ${address.postal-code-builder}, suffix = " "}, {type = "seq-state-name-part", value = ${address.states}}]} + ] + } + default-countries = [{code = "台灣", name = "台灣"}] +} \ No newline at end of file diff --git a/src/main/resources/zh_TW/name.conf b/src/main/resources/zh_TW/name.conf new file mode 100644 index 00000000..a30f9f51 --- /dev/null +++ b/src/main/resources/zh_TW/name.conf @@ -0,0 +1,15 @@ +name { + first.names = [怡君, 欣怡, 雅雯, 心怡, 志豪, 雅婷, 雅惠, 家豪, 雅玲, 靜怡, 志偉, 俊宏, 建宏, 佩君, 怡婷, 淑芬, 靜宜, 俊傑, 怡如, 家銘, 佳玲, 慧君, 怡伶, 雅芳, 宗翰, 志宏, 淑娟, 信宏, 志強, 淑婷, 佩珊, 佳慧, 佳蓉, 佳穎, 淑惠, 智偉, 欣儀, 嘉玲, 雅慧, 惠雯, 玉婷, 惠如, 惠君, 宜芳, 惠婷, 淑華, 志明, 雅芬, 家榮, 俊賢, 俊豪, 慧玲, 嘉宏, 佩芬, 佳樺, 雅琪, 淑萍, 淑君, 婉婷, 佳琪, 韻如, 詩婷, 建良, 芳儀, 宜君, 佩蓉, 志銘, 雅鈴, 建文, 佩玲, 鈺婷, 雅萍, 立偉, 文傑, 慧如, 淑慧, 佳宏, 志遠, 靜儀, 惠玲, 淑玲, 美君, 怡慧, 千慧, 馨儀, 嘉慧, 家瑋, 美慧, 美玲, 建志, 宗憲, 筱婷, 靜雯, 雅君, 彥廷, 怡靜, 玉玲, 郁婷, 俊男] + last.names = [趙, 錢, 孫, 李, 周, 吳, 鄭, 王, 馮, 陳, 褚, 衛, 蔣, 沈, 韓, 楊, 朱, 秦, 尤, 許, 何, 呂, 施, 張, 孔, 曹, 嚴, 華, 金, 魏, 陶, 薑, 戚, 謝, 鄒, 喻, 柏, 水, 竇, 章, 雲, 蘇, 潘, 葛, 奚, 範, 彭, 郎, 魯, 韋, 昌, 馬, 苗, 鳳, 花, 方, 俞, 任, 袁, 柳, 酆, 鮑, 史, 唐, 費, 廉, 岑, 薛, 雷, 賀, 倪, 湯, 滕, 殷, 羅, 畢, 郝, 鄔, 安, 常, 樂, 於, 時, 傅, 皮, 卞, 齊, 康, 伍, 餘, 元, 蔔, 顧, 孟, 平, 黃, 和, 穆, 蕭, 尹, 姚, 邵, 湛, 汪, 祁, 毛, 禹, 狄, 米, 貝, 明, 臧, 計, 伏, 成, 戴, 談, 宋, 茅, 龐, 熊, 紀, 舒, 屈, 項, 祝, 董, 梁, 杜, 阮, 藍, 閔, 席, 季, 麻, 強, 賈, 路, 婁, 危, 江, 童, 顏, 郭, 梅, 盛, 林, 刁, 鍾, 徐, 邱, 駱, 高, 夏, 蔡, 田, 樊, 胡, 淩, 霍, 虞, 萬, 支, 柯, 昝, 管, 盧, 莫, 柯, 房, 裘, 繆, 幹, 解, 應, 宗, 丁, 宣, 賁, 鄧, 鬱, 單, 杭, 洪, 包, 諸, 左, 石, 崔, 吉, 鈕, 龔, 程, 嵇, 邢, 滑, 裴, 陸, 榮, 翁, 荀, 羊, 于, 惠, 甄, 曲, 家, 封, 芮, 羿, 儲, 靳, 汲, 邴, 糜, 松, 井, 段, 富, 巫, 烏, 焦, 巴, 弓, 牧, 隗, 山, 穀, 車, 侯, 宓, 蓬, 全, 郗, 班, 仰, 秋, 仲, 伊, 宮, 甯, 仇, 欒, 暴, 甘, 鈄, 曆, 戎, 祖, 武, 符, 劉, 景, 詹, 束, 龍, 葉, 幸, 司, 韶, 郜, 黎, 薊, 溥, 印, 宿, 白, 懷, 蒲, 邰, 從, 鄂, 索, 鹹, 籍, 賴, 卓, 藺, 屠, 蒙, 池, 喬, 陽, 鬱, 胥, 能, 蒼, 雙, 聞, 莘, 党, 翟, 譚, 貢, 勞, 逄, 姬, 申, 扶, 堵, 冉, 宰, 酈, 雍, 卻, 璩, 桑, 桂, 濮, 牛, 壽, 通, 邊, 扈, 燕, 冀, 浦, 尚, 農, 溫, 別, 莊, 晏, 柴, 瞿, 閻, 充, 慕, 連, 茹, 習, 宦, 艾, 魚, 容, 向, 古, 易, 慎, 戈, 廖, 庾, 終, 暨, 居, 衡, 步, 都, 耿, 滿, 弘, 匡, 國, 文, 寇, 廣, 祿, 闕, 東, 歐, 殳, 沃, 利, 蔚, 越, 夔, 隆, 師, 鞏, 厙, 聶, 晁, 勾, 敖, 融, 冷, 訾, 辛, 闞, 那, 簡, 饒, 空, 曾, 毋, 沙, 乜, 養, 鞠, 須, 豐, 巢, 關, 蒯, 相, 查, 後, 荊, 紅, 遊, 竺, 權, 逮, 盍, 益, 桓, 公, 萬俟, 司馬, 上官, 歐陽, 夏侯, 諸葛, 聞人, 東方, 赫連, 皇甫, 尉遲, 公羊, 澹台, 公冶, 宗政, 濮陽, 淳于, 單於, 太叔, 申屠, 公孫, 仲孫, 軒轅, 令狐, 徐離, 宇文, 長孫, 慕容, 司徒, 司空] + + full-name-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.names}}]} + ] + } + full-name-with-middle-builder = { + options = [ + {parts = [{type = "seq-string-part", value = ${name.last.names}, suffix = " "}, {type = "seq-string-part", value = ${name.first.names}}]} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/zh_TW/phone.conf b/src/main/resources/zh_TW/phone.conf new file mode 100644 index 00000000..dc753dc2 --- /dev/null +++ b/src/main/resources/zh_TW/phone.conf @@ -0,0 +1,4 @@ +phone { + phone-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["###-########", "####-########", "###########"]}]}]} + cell-number-builder = {options = [{parts = [{type = "seq-string-part", value = ["###-########", "####-########", "###########"]}]}]} +} \ No newline at end of file diff --git a/src/main/scala/faker/Faker.scala b/src/main/scala/faker/Faker.scala index db7c8ff3..80d61d73 100644 --- a/src/main/scala/faker/Faker.scala +++ b/src/main/scala/faker/Faker.scala @@ -379,5 +379,8 @@ object Faker { val th: Faker = new Faker(SupportedLocales.th) val tr: Faker = new Faker(SupportedLocales.tr) val uk: Faker = new Faker(SupportedLocales.uk) + val vi: Faker = new Faker(SupportedLocales.vi) + val zh_CN: Faker = new Faker(SupportedLocales.zh_CN) + val zh_TW: Faker = new Faker(SupportedLocales.zh_TW) // $COVERAGE-ON$ } diff --git a/src/main/scala/faker/ResourceLoader.scala b/src/main/scala/faker/ResourceLoader.scala index af9f242e..b4b18b23 100644 --- a/src/main/scala/faker/ResourceLoader.scala +++ b/src/main/scala/faker/ResourceLoader.scala @@ -104,6 +104,9 @@ object ResourceLoader { val th: ResourceLoader = new ResourceLoader(SupportedLocales.th) val tr: ResourceLoader = new ResourceLoader(SupportedLocales.tr) val uk: ResourceLoader = new ResourceLoader(SupportedLocales.uk) + val vi: ResourceLoader = new ResourceLoader(SupportedLocales.vi) + val zh_CN: ResourceLoader = new ResourceLoader(SupportedLocales.zh_CN) + val zh_TW: ResourceLoader = new ResourceLoader(SupportedLocales.zh_TW) object Implicits { implicit val defaultResourceLoader: ResourceLoader = default diff --git a/src/main/scala/faker/SupportedLocales.scala b/src/main/scala/faker/SupportedLocales.scala index b8012802..eb4dc92f 100644 --- a/src/main/scala/faker/SupportedLocales.scala +++ b/src/main/scala/faker/SupportedLocales.scala @@ -57,4 +57,7 @@ object SupportedLocales { val th: Locale = new Locale("th") val tr: Locale = new Locale("tr") val uk: Locale = new Locale("uk") + val vi: Locale = new Locale("vi") + val zh_CN: Locale = Locale.CHINA + val zh_TW: Locale = Locale.TAIWAN } diff --git a/src/test/scala/faker/FakerSpec_vi.scala b/src/test/scala/faker/FakerSpec_vi.scala new file mode 100644 index 00000000..c0d70ddc --- /dev/null +++ b/src/test/scala/faker/FakerSpec_vi.scala @@ -0,0 +1,7 @@ +package faker + +import java.util.Locale + +class FakerSpec_vi extends FakerSpec { + override lazy val locale: Locale = SupportedLocales.vi +} diff --git a/src/test/scala/faker/FakerSpec_zh_CN.scala b/src/test/scala/faker/FakerSpec_zh_CN.scala new file mode 100644 index 00000000..09a870b3 --- /dev/null +++ b/src/test/scala/faker/FakerSpec_zh_CN.scala @@ -0,0 +1,7 @@ +package faker + +import java.util.Locale + +class FakerSpec_zh_CN extends FakerSpec { + override lazy val locale: Locale = SupportedLocales.zh_CN +} diff --git a/src/test/scala/faker/FakerSpec_zh_TW.scala b/src/test/scala/faker/FakerSpec_zh_TW.scala new file mode 100644 index 00000000..a2b7ea1c --- /dev/null +++ b/src/test/scala/faker/FakerSpec_zh_TW.scala @@ -0,0 +1,7 @@ +package faker + +import java.util.Locale + +class FakerSpec_zh_TW extends FakerSpec { + override lazy val locale: Locale = SupportedLocales.zh_TW +}