├── .github └── workflows │ ├── release.yml │ └── test.yml ├── .gitignore ├── LICENSE ├── README.md ├── banner.png ├── gleam.toml ├── manifest.toml ├── src └── blah │ ├── address.gleam │ ├── en │ ├── address.gleam │ ├── lorem.gleam │ ├── name.gleam │ ├── other.gleam │ ├── string.gleam │ └── word.gleam │ ├── fa │ ├── address.gleam │ ├── lorem.gleam │ ├── name.gleam │ ├── string.gleam │ └── word.gleam │ ├── fr │ ├── address.gleam │ ├── lorem.gleam │ ├── name.gleam │ ├── other.gleam │ └── word.gleam │ ├── image.gleam │ ├── internet.gleam │ ├── it │ ├── address.gleam │ ├── lorem.gleam │ ├── name.gleam │ ├── other.gleam │ └── word.gleam │ ├── locales │ ├── en │ │ ├── address.gleam │ │ ├── finance.gleam │ │ ├── lorem.gleam │ │ ├── name.gleam │ │ └── word.gleam │ ├── fa │ │ ├── address.gleam │ │ ├── name.gleam │ │ └── word.gleam │ ├── fr │ │ ├── address.gleam │ │ ├── finance.gleam │ │ ├── lorem.gleam │ │ ├── name.gleam │ │ └── word.gleam │ └── it │ │ ├── address.gleam │ │ ├── finance.gleam │ │ ├── lorem.gleam │ │ ├── name.gleam │ │ └── word.gleam │ ├── lorem.gleam │ ├── name.gleam │ ├── other.gleam │ ├── string.gleam │ ├── time.gleam │ ├── utils.gleam │ └── word.gleam └── test ├── address_it_test.gleam ├── blah_test.gleam ├── internet_test.gleam ├── lorem_it_test.gleam ├── name_it_test.gleam ├── name_test.gleam ├── other_it_test.gleam ├── utils_test.gleam ├── word_fa_test.gleam ├── word_fr_test.gleam ├── word_it_test.gleam └── word_test.gleam /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | push: 5 | tags: ['v*'] 6 | 7 | jobs: 8 | publish: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v4 13 | - uses: erlef/setup-beam@v1 14 | with: 15 | otp-version: '26' 16 | gleam-version: '1.6' 17 | 18 | - run: | 19 | version="v$(cat gleam.toml | grep -m 1 "version" | sed -r "s/version *= *\"([[:digit:].]+)\"/\1/")" 20 | if [ "$version" != "${{ github.ref_name }}" ]; then 21 | echo "tag '${{ github.ref_name }}' does not match the version in gleam.toml" 22 | echo "expected a tag name 'v$version'" 23 | exit 1 24 | fi 25 | name: check version 26 | 27 | - run: gleam format --check 28 | 29 | - run: gleam test 30 | 31 | - run: gleam publish -y 32 | env: 33 | HEXPM_USER: ${{ secrets.HEXPM_USER }} 34 | HEXPM_PASS: ${{ secrets.HEXPM_PASS }} 35 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | test: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: erlef/setup-beam@v1 15 | with: 16 | otp-version: '26' 17 | gleam-version: '1.6' 18 | rebar3-version: '3' 19 | - run: gleam test 20 | - run: gleam format --check src test 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.beam 2 | *.ez 3 | build 4 | erl_crash.dump 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![blah](https://raw.githubusercontent.com/massivefermion/blah/main/banner.png) 2 | 3 | [![Package Version](https://img.shields.io/hexpm/v/blah)](https://hex.pm/packages/blah) 4 | [![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/blah/) 5 | 6 | # blah 7 | 8 | fake data generation for gleam 9 | 10 | ## 🎲 Installation 11 | 12 | ```sh 13 | gleam add blah 14 | ``` 15 | 16 | ## 🎲 Usage 17 | 18 | ```gleam 19 | import blah/name 20 | import blah/time 21 | import blah/other 22 | import blah/internet 23 | import birl 24 | import birl/duration 25 | import bison/object_id 26 | 27 | pub type Person { 28 | Person( 29 | id: object_id.ObjectId, 30 | name: String, 31 | username: String, 32 | birthday: birl.Time, 33 | age: Int, 34 | ) 35 | } 36 | 37 | pub fn generate_fake_person() { 38 | let assert Ok(id) = object_id.from_string(other.mongo_object_id()) 39 | let name = name.first_name() 40 | let birthday = time.past(duration.years(18), duration.years(32)) 41 | let assert #(age, duration.Year) = 42 | duration.blur(birl.difference(birl.now(), birthday)) 43 | 44 | Person( 45 | id: id, 46 | name: name, 47 | username: internet.username(name), 48 | birthday: birthday, 49 | age: age, 50 | ) 51 | } 52 | ``` -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/massivefermion/blah/f07892a4da3b71209d949950657047a8d5aed486/banner.png -------------------------------------------------------------------------------- /gleam.toml: -------------------------------------------------------------------------------- 1 | name = "blah" 2 | version = "1.4.0" 3 | 4 | description = "fake data generation for gleam" 5 | licences = ["Apache-2.0"] 6 | links = [{ title = "Gleam", href = "https://gleam.run" }] 7 | repository = { type = "github", user = "massivefermion", repo = "blah" } 8 | 9 | gleam = ">= 0.32.0" 10 | internal_modules = ["blah/en/*", "blah/utils", "blah/locales/*"] 11 | 12 | [dependencies] 13 | birl = "~> 1.8" 14 | gleam_stdlib = ">= 0.49.0 or < 2.0.0" 15 | gleam_regexp = ">= 1.0.0 and < 2.0.0" 16 | 17 | [dev-dependencies] 18 | gleeunit = "~> 1.2" 19 | -------------------------------------------------------------------------------- /manifest.toml: -------------------------------------------------------------------------------- 1 | # This file was generated by Gleam 2 | # You typically do not need to edit this file 3 | 4 | packages = [ 5 | { name = "birl", version = "1.8.0", build_tools = ["gleam"], requirements = ["gleam_regexp", "gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "2AC7BA26F998E3DFADDB657148BD5DDFE966958AD4D6D6957DD0D22E5B56C400" }, 6 | { name = "gleam_regexp", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_regexp", source = "hex", outer_checksum = "A3655FDD288571E90EE9C4009B719FEF59FA16AFCDF3952A76A125AF23CF1592" }, 7 | { name = "gleam_stdlib", version = "0.49.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "A7DB09F15738198A87255425FBCE049B4B84C77CC522786DC923DABA73911F13" }, 8 | { name = "gleam_yielder", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_yielder", source = "hex", outer_checksum = "8E4E4ECFA7982859F430C57F549200C7749823C106759F4A19A78AEA6687717A" }, 9 | { name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" }, 10 | { name = "ranger", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_yielder"], otp_app = "ranger", source = "hex", outer_checksum = "C8988E8F8CDBD3E7F4D8F2E663EF76490390899C2B2885A6432E942495B3E854" }, 11 | ] 12 | 13 | [requirements] 14 | birl = { version = "~> 1.8" } 15 | gleam_regexp = { version = ">= 1.0.0 and < 2.0.0" } 16 | gleam_stdlib = { version = ">= 0.49.0 or < 2.0.0" } 17 | gleeunit = { version = "~> 1.2" } 18 | -------------------------------------------------------------------------------- /src/blah/address.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/en/address` 2 | 3 | import blah/en/address 4 | 5 | pub fn country() { 6 | address.country() 7 | } 8 | 9 | pub fn country_code() { 10 | address.country_code() 11 | } 12 | 13 | pub fn alpha3_coutry_code() { 14 | address.alpha3_country_code() 15 | } 16 | 17 | pub fn state() { 18 | address.state() 19 | } 20 | 21 | pub fn state_code() { 22 | address.state_code() 23 | } 24 | 25 | pub fn city() { 26 | address.city() 27 | } 28 | 29 | pub fn street() { 30 | address.street() 31 | } 32 | 33 | pub fn zip_code() { 34 | address.zip_code() 35 | } 36 | 37 | pub fn direction() { 38 | address.direction() 39 | } 40 | 41 | pub fn direction_code() { 42 | address.direction_code() 43 | } 44 | 45 | pub fn full_address() { 46 | address.full_address() 47 | } 48 | 49 | pub fn time_zone() { 50 | address.time_zone() 51 | } 52 | -------------------------------------------------------------------------------- /src/blah/en/address.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/address` 2 | 3 | import gleam/string 4 | 5 | import blah/en/string as blah_string 6 | import blah/locales/en/address 7 | import blah/name 8 | import blah/utils.{get_random_int, get_random_item} 9 | 10 | pub fn country() { 11 | get_random_item(address.countries) 12 | } 13 | 14 | pub fn country_code() { 15 | get_random_item(address.country_codes) 16 | } 17 | 18 | pub fn alpha3_country_code() { 19 | get_random_item(address.alpha3_country_codes) 20 | } 21 | 22 | pub fn state() { 23 | get_random_item(address.states) 24 | } 25 | 26 | pub fn state_code() { 27 | get_random_item(address.state_codes) 28 | } 29 | 30 | pub fn city() { 31 | get_random_item(address.cities) 32 | } 33 | 34 | pub fn street() { 35 | let street = get_random_item(address.streets) 36 | [name.last_name(), street] 37 | |> string.join(" ") 38 | } 39 | 40 | pub fn zip_code() { 41 | let nonce = get_random_int(4, 2048) 42 | 43 | case nonce % 2 { 44 | 0 -> blah_string.with_pattern("%d%d%d%d%d-%d%d%d%d") 45 | _ -> blah_string.numeric(5) 46 | } 47 | } 48 | 49 | pub fn direction() { 50 | get_random_item(address.directions) 51 | } 52 | 53 | pub fn direction_code() { 54 | get_random_item(address.direction_codes) 55 | } 56 | 57 | pub fn full_address() { 58 | [blah_string.with_pattern("%n%d%d%d"), street()] 59 | |> string.join(" ") 60 | } 61 | 62 | pub fn time_zone() { 63 | get_random_item(address.time_zones) 64 | } 65 | -------------------------------------------------------------------------------- /src/blah/en/lorem.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/lorem` 2 | 3 | import gleam/list 4 | import gleam/string 5 | 6 | import blah/locales/en/lorem 7 | import blah/utils.{get_random_int, get_random_item} 8 | 9 | pub fn word() { 10 | get_random_item(lorem.words) 11 | } 12 | 13 | pub fn words(num: Int) { 14 | list.repeat("", num) 15 | |> list.map(fn(_) { word() }) 16 | |> string.join(" ") 17 | } 18 | 19 | pub fn slug(num: Int) { 20 | list.repeat("", num) 21 | |> list.map(fn(_) { word() }) 22 | |> string.join("-") 23 | } 24 | 25 | pub fn sentence() { 26 | let length = get_random_int(4, 16) 27 | [string.capitalise(words(length)), "."] 28 | |> string.join("") 29 | } 30 | 31 | pub fn sentences(num: Int) { 32 | list.repeat("", num) 33 | |> list.map(fn(_) { sentence() }) 34 | |> string.join(" ") 35 | } 36 | 37 | pub fn paragraph() { 38 | let length = get_random_int(4, 8) 39 | list.repeat("", length) 40 | |> list.map(fn(_) { sentence() }) 41 | |> string.join(" ") 42 | } 43 | 44 | pub fn paragraphs(num: Int) { 45 | list.repeat("", num) 46 | |> list.map(fn(_) { paragraph() }) 47 | |> string.join("\n") 48 | } 49 | -------------------------------------------------------------------------------- /src/blah/en/name.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/name` 2 | 3 | import gleam/string 4 | 5 | import blah/locales/en/name 6 | import blah/utils.{get_random_item} 7 | 8 | pub fn first_name() { 9 | get_random_item(name.first_names) 10 | } 11 | 12 | pub fn female_first_name() { 13 | get_random_item(name.female_first_names) 14 | } 15 | 16 | pub fn male_first_name() { 17 | get_random_item(name.male_first_names) 18 | } 19 | 20 | pub fn last_name() { 21 | get_random_item(name.last_names) 22 | } 23 | 24 | pub fn full_name() { 25 | [first_name(), last_name()] 26 | |> string.join(" ") 27 | } 28 | 29 | pub fn female_full_name() { 30 | [female_first_name(), last_name()] 31 | |> string.join(" ") 32 | } 33 | 34 | pub fn male_full_name() { 35 | [male_first_name(), last_name()] 36 | |> string.join(" ") 37 | } 38 | -------------------------------------------------------------------------------- /src/blah/en/other.gleam: -------------------------------------------------------------------------------- 1 | import blah/locales/en/finance 2 | import blah/utils.{get_random_item} 3 | 4 | pub fn currency() { 5 | get_random_item(finance.currencies) 6 | } 7 | -------------------------------------------------------------------------------- /src/blah/en/string.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/string` 2 | 3 | import gleam/list 4 | import gleam/string 5 | import gleam/string_tree.{type StringTree} 6 | 7 | import blah/utils.{get_random_int, get_random_item} 8 | 9 | pub fn alpha(length: Int) { 10 | alpha_internal(length, string_tree.new()) 11 | } 12 | 13 | pub fn lower_alpha(length: Int) { 14 | lower_internal(length, string_tree.new()) 15 | } 16 | 17 | pub fn upper_alpha(length: Int) { 18 | upper_internal(length, string_tree.new()) 19 | } 20 | 21 | pub fn numeric(length: Int) { 22 | numeric_internal(length, string_tree.new()) 23 | } 24 | 25 | pub fn alphanumeric(length: Int) { 26 | alphanumeric_internal(length, string_tree.new()) 27 | } 28 | 29 | /// you can use the below codes to specify your desired pattern: 30 | /// 31 | /// %c - digits and letters 32 | /// 33 | /// %w - letters 34 | /// 35 | /// %d - digits 36 | /// 37 | /// %n - non-zero digits 38 | /// 39 | /// %l - lowercase letters 40 | /// 41 | /// %u - uppercase letters 42 | /// 43 | pub fn with_pattern(given_pattern: String) { 44 | with_pattern_internal(given_pattern, string_tree.new()) 45 | } 46 | 47 | pub fn roman_numeral(min: Int, max: Int) { 48 | get_random_int(min, max) 49 | |> list.repeat("I", _) 50 | |> string_tree.from_strings 51 | |> string_tree.replace("IIIII", "V") 52 | |> string_tree.replace("VV", "X") 53 | |> string_tree.replace("XXXXX", "L") 54 | |> string_tree.replace("LL", "C") 55 | |> string_tree.replace("CCCCC", "D") 56 | |> string_tree.replace("DD", "M") 57 | |> string_tree.replace("DCCCC", "CM") 58 | |> string_tree.replace("CCCC", "CD") 59 | |> string_tree.replace("LXXXX", "XC") 60 | |> string_tree.replace("XXXX", "XL") 61 | |> string_tree.replace("VIIII", "IX") 62 | |> string_tree.replace("IIII", "IV") 63 | |> string_tree.to_string 64 | } 65 | 66 | const lower_letters = [ 67 | "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", 68 | "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 69 | ] 70 | 71 | const upper_letters = [ 72 | "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", 73 | "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 74 | ] 75 | 76 | const letters = [ 77 | "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", 78 | "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", 79 | "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", 80 | "w", "x", "y", "z", 81 | ] 82 | 83 | const digits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 84 | 85 | const non_zero_digits = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] 86 | 87 | const characters = [ 88 | "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", 89 | "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", 90 | "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", 91 | "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 92 | ] 93 | 94 | fn alpha_internal(remaining: Int, storage: StringTree) -> String { 95 | case remaining == 0 { 96 | True -> string_tree.to_string(storage) 97 | 98 | False -> { 99 | let letter = get_random_item(letters) 100 | alpha_internal(remaining - 1, string_tree.append(storage, letter)) 101 | } 102 | } 103 | } 104 | 105 | fn lower_internal(remaining: Int, storage: StringTree) -> String { 106 | case remaining == 0 { 107 | True -> string_tree.to_string(storage) 108 | 109 | False -> { 110 | let letter = get_random_item(lower_letters) 111 | lower_internal(remaining - 1, string_tree.append(storage, letter)) 112 | } 113 | } 114 | } 115 | 116 | fn upper_internal(remaining: Int, storage: StringTree) -> String { 117 | case remaining == 0 { 118 | True -> string_tree.to_string(storage) 119 | 120 | False -> { 121 | let letter = get_random_item(upper_letters) 122 | upper_internal(remaining - 1, string_tree.append(storage, letter)) 123 | } 124 | } 125 | } 126 | 127 | fn numeric_internal(remaining: Int, storage: StringTree) -> String { 128 | case remaining == 0 { 129 | True -> string_tree.to_string(storage) 130 | 131 | False -> { 132 | let digit = get_random_item(digits) 133 | numeric_internal(remaining - 1, string_tree.append(storage, digit)) 134 | } 135 | } 136 | } 137 | 138 | fn alphanumeric_internal(remaining: Int, storage: StringTree) -> String { 139 | case remaining == 0 { 140 | True -> string_tree.to_string(storage) 141 | 142 | False -> { 143 | let character = get_random_item(characters) 144 | alphanumeric_internal( 145 | remaining - 1, 146 | string_tree.append(storage, character), 147 | ) 148 | } 149 | } 150 | } 151 | 152 | fn with_pattern_internal(given_pattern: String, storage: StringTree) -> String { 153 | case string.first(given_pattern) { 154 | Ok("%") -> { 155 | let to_append = case string.slice(given_pattern, 0, 2) { 156 | "%d" -> get_random_item(digits) 157 | "%w" -> get_random_item(letters) 158 | "%c" -> get_random_item(characters) 159 | "%l" -> get_random_item(lower_letters) 160 | "%u" -> get_random_item(upper_letters) 161 | "%n" -> get_random_item(non_zero_digits) 162 | characters -> characters 163 | } 164 | with_pattern_internal( 165 | string.drop_start(given_pattern, 2), 166 | string_tree.append(storage, to_append), 167 | ) 168 | } 169 | 170 | Ok(to_append) -> 171 | with_pattern_internal( 172 | string.drop_start(given_pattern, 1), 173 | string_tree.append(storage, to_append), 174 | ) 175 | 176 | Error(Nil) -> string_tree.to_string(storage) 177 | } 178 | } 179 | -------------------------------------------------------------------------------- /src/blah/en/word.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/word` 2 | 3 | import blah/locales/en/word 4 | import blah/utils.{get_random_item} 5 | 6 | pub fn verb() { 7 | get_random_item(word.verbs) 8 | } 9 | 10 | pub fn preposition() { 11 | get_random_item(word.prepositions) 12 | } 13 | 14 | pub fn noun() { 15 | get_random_item(word.nouns) 16 | } 17 | 18 | pub fn interjection() { 19 | get_random_item(word.interjections) 20 | } 21 | 22 | pub fn conjunction() { 23 | get_random_item(word.conjunctions) 24 | } 25 | 26 | pub fn adverb() { 27 | get_random_item(word.adverbs) 28 | } 29 | 30 | pub fn adjective() { 31 | get_random_item(word.adjectives) 32 | } 33 | -------------------------------------------------------------------------------- /src/blah/fa/address.gleam: -------------------------------------------------------------------------------- 1 | import gleam/string 2 | 3 | import blah/fa/string as blah_string 4 | import blah/locales/fa/address 5 | import blah/utils.{get_random_int, get_random_item} 6 | 7 | pub fn country() { 8 | get_random_item(address.countries) 9 | } 10 | 11 | pub fn province() { 12 | get_random_item(address.provinces) 13 | } 14 | 15 | pub fn city() { 16 | get_random_item(address.cities) 17 | } 18 | 19 | pub fn street() { 20 | let nonce = get_random_int(4, 2048) 21 | 22 | let prefix = get_random_item(address.street_prefixes) 23 | 24 | let street = get_random_item(address.streets) 25 | 26 | let street = 27 | [prefix, street] 28 | |> string.join(" ") 29 | 30 | case nonce % 2 { 31 | 0 -> street 32 | 33 | _ -> { 34 | let prefix = get_random_item(address.alley_prefixes) 35 | let alley = get_random_item(address.streets) 36 | let alley = 37 | [prefix, alley] 38 | |> string.join(" ") 39 | [street, alley] 40 | |> string.join("، ") 41 | } 42 | } 43 | } 44 | 45 | pub fn postal_code() { 46 | blah_string.with_pattern("%n%d%d%d%d-%n%d%d%d%d") 47 | } 48 | 49 | pub fn floor() { 50 | let length = get_random_int(1, 2) 51 | let floor = blah_string.numeric(length) 52 | ["طبقه‌ی", floor] 53 | |> string.join(" ") 54 | } 55 | 56 | pub fn unit() { 57 | let length = get_random_int(1, 3) 58 | let unit = blah_string.numeric(length) 59 | ["واحد", unit] 60 | |> string.join(" ") 61 | } 62 | 63 | pub fn direction() { 64 | get_random_item(address.directions) 65 | } 66 | 67 | pub fn full_address() { 68 | [street(), floor(), unit()] 69 | |> string.join("، ") 70 | } 71 | -------------------------------------------------------------------------------- /src/blah/fa/lorem.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleam/string 3 | 4 | import blah/fa/string as blah_string 5 | import blah/utils.{get_random_int} 6 | 7 | pub fn word() { 8 | blah_string.pronounceable() 9 | } 10 | 11 | pub fn words(num: Int) { 12 | list.repeat("", num) 13 | |> list.map(fn(_) { word() }) 14 | |> string.join(" ") 15 | } 16 | 17 | pub fn sentence() { 18 | let length = get_random_int(4, 16) 19 | [words(length), "."] 20 | |> string.join("") 21 | } 22 | 23 | pub fn sentences(num: Int) { 24 | list.repeat("", num) 25 | |> list.map(fn(_) { sentence() }) 26 | |> string.join(" ") 27 | } 28 | 29 | pub fn paragraph() { 30 | let length = get_random_int(4, 8) 31 | list.repeat("", length) 32 | |> list.map(fn(_) { sentence() }) 33 | |> string.join(" ") 34 | } 35 | 36 | pub fn paragraphs(num: Int) { 37 | list.repeat("", num) 38 | |> list.map(fn(_) { paragraph() }) 39 | |> string.join("\n") 40 | } 41 | -------------------------------------------------------------------------------- /src/blah/fa/name.gleam: -------------------------------------------------------------------------------- 1 | import gleam/string 2 | 3 | import blah/locales/fa/name 4 | import blah/utils.{get_random_item} 5 | 6 | pub fn first_name() { 7 | get_random_item(name.first_names) 8 | } 9 | 10 | pub fn female_first_name() { 11 | get_random_item(name.female_first_names) 12 | } 13 | 14 | pub fn male_first_name() { 15 | get_random_item(name.male_first_names) 16 | } 17 | 18 | pub fn last_name() { 19 | get_random_item(name.last_names) 20 | } 21 | 22 | pub fn full_name() { 23 | [first_name(), last_name()] 24 | |> string.join(" ") 25 | } 26 | 27 | pub fn female_full_name() { 28 | [female_first_name(), last_name()] 29 | |> string.join(" ") 30 | } 31 | 32 | pub fn male_full_name() { 33 | [male_first_name(), last_name()] 34 | |> string.join(" ") 35 | } 36 | -------------------------------------------------------------------------------- /src/blah/fa/string.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleam/string 3 | import gleam/string_tree.{type StringTree} 4 | 5 | import blah/utils.{get_random_int, get_random_item} 6 | 7 | pub fn alpha(length: Int) { 8 | alpha_internal(length, string_tree.new()) 9 | } 10 | 11 | pub fn numeric(length: Int) { 12 | numeric_internal(length, string_tree.new()) 13 | } 14 | 15 | pub fn alphanumeric(length: Int) { 16 | alphanumeric_internal(length, string_tree.new()) 17 | } 18 | 19 | /// you can use the below codes to specify your desired pattern: 20 | /// 21 | /// %c - digits and letters 22 | /// 23 | /// %w - letters 24 | /// 25 | /// %d - digits 26 | /// 27 | /// %n - non-zero digits 28 | pub fn with_pattern(given_pattern: String) { 29 | with_pattern_internal(given_pattern, string_tree.new()) 30 | } 31 | 32 | pub fn pronounceable() { 33 | let nonce = get_random_int(4, 2048) 34 | let length = { get_random_int(2, 4) } * 2 35 | 36 | case nonce % 2 { 37 | 0 -> { 38 | let first = get_random_item(starting_vowels) 39 | let second = get_random_item(consonants) 40 | pronounceable_internal( 41 | length - 2, 42 | string_tree.from_strings([first, second]), 43 | ) 44 | } 45 | _ -> pronounceable_internal(length, string_tree.new()) 46 | } 47 | } 48 | 49 | const vowels = ["ا", "و"] 50 | 51 | const starting_vowels = ["آ", "او"] 52 | 53 | const consonants = [ 54 | "ب", "پ", "ت", "ث", "ج", "چ", "ح", "خ", "د", "ذ", "ر", "ز", "ژ", "س", "ش", "ص", 55 | "ض", "ط", "ظ", "ع", "غ", "ف", "ق", "ک", "گ", "ل", "م", "ن", "ه", "ی", 56 | ] 57 | 58 | const letters = [ 59 | "آ", "ا", "ب", "پ", "ت", "ث", "ج", "چ", "ح", "خ", "د", "ذ", "ر", "ز", "ژ", "س", 60 | "ش", "ص", "ض", "ط", "ظ", "ع", "غ", "ف", "ق", "ک", "گ", "ل", "م", "ن", "و", "ه", 61 | "ی", 62 | ] 63 | 64 | const digits = ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"] 65 | 66 | const non_zero_digits = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"] 67 | 68 | const characters = [ 69 | "آ", "ا", "ب", "پ", "ت", "ث", "ج", "چ", "ح", "خ", "د", "ذ", "ر", "ز", "ژ", "س", 70 | "ش", "ص", "ض", "ط", "ظ", "ع", "غ", "ف", "ق", "ک", "گ", "ل", "م", "ن", "و", "ه", 71 | "ی", "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", 72 | ] 73 | 74 | fn pronounceable_internal(remaining: Int, storage: StringTree) -> String { 75 | case remaining { 76 | 0 -> string_tree.to_string(storage) 77 | 78 | _ -> { 79 | let nonce = get_random_int(4, 2048) 80 | let letters = case nonce % 2 { 81 | 0 -> { 82 | let first = get_random_item(vowels) 83 | let second = get_random_item(consonants) 84 | [first, second] 85 | |> list.map(string_tree.from_string) 86 | } 87 | _ -> { 88 | let first = get_random_item(consonants) 89 | let second = get_random_item(vowels) 90 | [first, second] 91 | |> list.map(string_tree.from_string) 92 | } 93 | } 94 | pronounceable_internal( 95 | remaining - 2, 96 | string_tree.concat([storage, ..letters]), 97 | ) 98 | } 99 | } 100 | } 101 | 102 | fn alpha_internal(remaining: Int, storage: StringTree) -> String { 103 | case remaining == 0 { 104 | True -> string_tree.to_string(storage) 105 | 106 | False -> { 107 | let letter = get_random_item(letters) 108 | alpha_internal(remaining - 1, string_tree.append(storage, letter)) 109 | } 110 | } 111 | } 112 | 113 | fn numeric_internal(remaining: Int, storage: StringTree) -> String { 114 | case remaining == 0 { 115 | True -> string_tree.to_string(storage) 116 | 117 | False -> { 118 | let digit = get_random_item(digits) 119 | numeric_internal(remaining - 1, string_tree.append(storage, digit)) 120 | } 121 | } 122 | } 123 | 124 | fn alphanumeric_internal(remaining: Int, storage: StringTree) -> String { 125 | case remaining == 0 { 126 | True -> string_tree.to_string(storage) 127 | 128 | False -> { 129 | let character = get_random_item(characters) 130 | alphanumeric_internal( 131 | remaining - 1, 132 | string_tree.append(storage, character), 133 | ) 134 | } 135 | } 136 | } 137 | 138 | fn with_pattern_internal(given_pattern: String, storage: StringTree) -> String { 139 | case string.first(given_pattern) { 140 | Ok("%") -> { 141 | let to_append = case string.slice(given_pattern, 0, 2) { 142 | "%d" -> get_random_item(digits) 143 | "%w" -> get_random_item(letters) 144 | "%c" -> get_random_item(characters) 145 | "%n" -> get_random_item(non_zero_digits) 146 | characters -> characters 147 | } 148 | with_pattern_internal( 149 | string.drop_start(given_pattern, 2), 150 | string_tree.append(storage, to_append), 151 | ) 152 | } 153 | 154 | Ok(to_append) -> 155 | with_pattern_internal( 156 | string.drop_start(given_pattern, 1), 157 | string_tree.append(storage, to_append), 158 | ) 159 | 160 | Error(Nil) -> string_tree.to_string(storage) 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /src/blah/fa/word.gleam: -------------------------------------------------------------------------------- 1 | import blah/locales/fa/word 2 | import blah/utils.{get_random_item} 3 | 4 | pub fn verb() { 5 | get_random_item(word.verbs) 6 | } 7 | 8 | pub fn preposition() { 9 | get_random_item(word.prepositions) 10 | } 11 | 12 | pub fn noun() { 13 | get_random_item(word.nouns) 14 | } 15 | 16 | pub fn interjection() { 17 | get_random_item(word.interjections) 18 | } 19 | 20 | pub fn conjunction() { 21 | get_random_item(word.conjunctions) 22 | } 23 | 24 | pub fn adverb() { 25 | get_random_item(word.adverbs) 26 | } 27 | 28 | pub fn adjective() { 29 | get_random_item(word.adjectives) 30 | } 31 | -------------------------------------------------------------------------------- /src/blah/fr/address.gleam: -------------------------------------------------------------------------------- 1 | import gleam/string 2 | 3 | import blah/fr/name 4 | import blah/locales/fr/address 5 | import blah/string as blah_string 6 | import blah/utils.{get_random_int, get_random_item} 7 | 8 | pub type Department = 9 | address.Department 10 | 11 | pub type City = 12 | address.City 13 | 14 | pub fn country() -> String { 15 | get_random_item(address.countries) 16 | } 17 | 18 | pub fn departement() -> Department { 19 | get_random_item(address.departments) 20 | } 21 | 22 | pub fn city() -> City { 23 | get_random_item(address.cities) 24 | } 25 | 26 | pub fn street() -> String { 27 | let street_type = case get_random_int(0, 10) { 28 | // most of French street names starts with "rue" 29 | i if i < 8 -> "rue" 30 | _ -> get_random_item(address.streets) 31 | } 32 | [street_type, name.last_name()] 33 | |> string.join(" ") 34 | } 35 | 36 | pub fn direction() -> String { 37 | get_random_item(address.directions) 38 | } 39 | 40 | pub fn direction_code() -> String { 41 | get_random_item(address.direction_codes) 42 | } 43 | 44 | pub fn full_address() -> String { 45 | let city = city() 46 | let postal_code = get_random_item(city.postal_codes) 47 | [blah_string.with_pattern("%d%d"), street(), postal_code, city.name] 48 | |> string.join(" ") 49 | } 50 | 51 | pub fn time_zone() -> String { 52 | get_random_item(address.time_zones) 53 | } 54 | -------------------------------------------------------------------------------- /src/blah/fr/lorem.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/lorem` 2 | 3 | import gleam/list 4 | import gleam/string 5 | 6 | import blah/locales/fr/lorem 7 | import blah/utils.{get_random_int, get_random_item} 8 | 9 | pub fn word() { 10 | get_random_item(lorem.words) 11 | } 12 | 13 | pub fn words(num: Int) { 14 | list.repeat("", num) 15 | |> list.map(fn(_) { word() }) 16 | |> string.join(" ") 17 | } 18 | 19 | pub fn slug(num: Int) { 20 | list.repeat("", num) 21 | |> list.map(fn(_) { word() }) 22 | |> string.join("-") 23 | } 24 | 25 | pub fn sentence() { 26 | let length = get_random_int(4, 16) 27 | [string.capitalise(words(length)), "."] 28 | |> string.join("") 29 | } 30 | 31 | pub fn sentences(num: Int) { 32 | list.repeat("", num) 33 | |> list.map(fn(_) { sentence() }) 34 | |> string.join(" ") 35 | } 36 | 37 | pub fn paragraph() { 38 | let length = get_random_int(4, 8) 39 | list.repeat("", length) 40 | |> list.map(fn(_) { sentence() }) 41 | |> string.join(" ") 42 | } 43 | 44 | pub fn paragraphs(num: Int) { 45 | list.repeat("", num) 46 | |> list.map(fn(_) { paragraph() }) 47 | |> string.join("\n") 48 | } 49 | -------------------------------------------------------------------------------- /src/blah/fr/name.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/name` 2 | 3 | import gleam/string 4 | 5 | import blah/locales/fr/name 6 | import blah/utils.{get_random_item} 7 | 8 | pub fn first_name() { 9 | get_random_item(name.first_names) 10 | } 11 | 12 | pub fn female_first_name() { 13 | get_random_item(name.female_first_names) 14 | } 15 | 16 | pub fn male_first_name() { 17 | get_random_item(name.male_first_names) 18 | } 19 | 20 | pub fn last_name() { 21 | get_random_item(name.last_names) 22 | } 23 | 24 | pub fn full_name() { 25 | [first_name(), last_name()] 26 | |> string.join(" ") 27 | } 28 | 29 | pub fn female_full_name() { 30 | [female_first_name(), last_name()] 31 | |> string.join(" ") 32 | } 33 | 34 | pub fn male_full_name() { 35 | [male_first_name(), last_name()] 36 | |> string.join(" ") 37 | } 38 | -------------------------------------------------------------------------------- /src/blah/fr/other.gleam: -------------------------------------------------------------------------------- 1 | import blah/locales/fr/finance 2 | import blah/utils.{get_random_item} 3 | 4 | pub fn currency() { 5 | get_random_item(finance.currencies) 6 | } 7 | -------------------------------------------------------------------------------- /src/blah/fr/word.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/word` 2 | 3 | import blah/locales/fr/word 4 | import blah/utils.{get_random_item} 5 | 6 | pub fn verb() { 7 | get_random_item(word.verbs) 8 | } 9 | 10 | pub fn preposition() { 11 | get_random_item(word.prepositions) 12 | } 13 | 14 | pub fn noun() { 15 | get_random_item(word.nouns) 16 | } 17 | 18 | pub fn interjection() { 19 | get_random_item(word.interjections) 20 | } 21 | 22 | pub fn conjunction() { 23 | get_random_item(word.conjunctions) 24 | } 25 | 26 | pub fn adverb() { 27 | get_random_item(word.adverbs) 28 | } 29 | 30 | pub fn adjective() { 31 | get_random_item(word.adjectives) 32 | } 33 | -------------------------------------------------------------------------------- /src/blah/image.gleam: -------------------------------------------------------------------------------- 1 | import gleam/int 2 | 3 | import blah/utils.{get_random_int, get_random_item} 4 | 5 | pub fn avatar(width: Int, height: Int) { 6 | let category = get_random_item(["portrait", "celebrity", "face", "smile"]) 7 | with_category(category, width, height) 8 | } 9 | 10 | pub fn animal(width: Int, height: Int) { 11 | with_category("animal", width, height) 12 | } 13 | 14 | pub fn sloth(width: Int, height: Int) { 15 | with_category("sloth", width, height) 16 | } 17 | 18 | pub fn jellyfish(width: Int, height: Int) { 19 | with_category("jellyfish", width, height) 20 | } 21 | 22 | pub fn cat(width: Int, height: Int) { 23 | with_category("cat", width, height) 24 | } 25 | 26 | pub fn dog(width: Int, height: Int) { 27 | with_category("dog", width, height) 28 | } 29 | 30 | pub fn food(width: Int, height: Int) { 31 | with_category("food", width, height) 32 | } 33 | 34 | pub fn sports(width: Int, height: Int) { 35 | with_category("sports", width, height) 36 | } 37 | 38 | pub fn people(width: Int, height: Int) { 39 | with_category("people", width, height) 40 | } 41 | 42 | pub fn fashion(width: Int, height: Int) { 43 | with_category("fashion", width, height) 44 | } 45 | 46 | pub fn with_category(category: String, width: Int, height: Int) { 47 | "https://loremflickr.com/" 48 | <> int.to_string(width) 49 | <> "/" 50 | <> int.to_string(height) 51 | <> "/" 52 | <> category 53 | <> "?lock=" 54 | <> int.to_string(get_random_int(4, 4_294_967_296)) 55 | } 56 | 57 | pub fn whatever(width: Int, height: Int) { 58 | "https://picsum.photos/seed/" 59 | <> int.to_string(get_random_int(4, 4_294_967_296)) 60 | <> "/" 61 | <> int.to_string(width) 62 | <> "/" 63 | <> int.to_string(height) 64 | } 65 | -------------------------------------------------------------------------------- /src/blah/internet.gleam: -------------------------------------------------------------------------------- 1 | import gleam/int 2 | import gleam/list 3 | import gleam/pair 4 | import gleam/string 5 | 6 | import blah/en/string as blah_string 7 | import blah/en/word 8 | import blah/name 9 | import blah/utils.{get_random_int, get_random_item} 10 | 11 | pub type HTTPStatusClass { 12 | Informational 13 | Successful 14 | Redirection 15 | ClientError 16 | ServerError 17 | } 18 | 19 | pub fn username(name: String) { 20 | let adjective = word.adjective() 21 | 22 | let nonce = get_random_int(4, 2048) 23 | case nonce % 8 { 24 | 0 -> 25 | [adjective, string.replace(name, " ", "")] 26 | |> string.join("") 27 | 28 | 1 -> 29 | [adjective, string.replace(string.lowercase(name), " ", ".")] 30 | |> string.join(".") 31 | 32 | 2 -> 33 | [adjective, string.replace(string.lowercase(name), " ", "-")] 34 | |> string.join("-") 35 | 36 | 3 -> 37 | [adjective, string.replace(string.lowercase(name), " ", "_")] 38 | |> string.join("_") 39 | 40 | 4 -> 41 | [ 42 | adjective, 43 | string.replace(name, " ", ""), 44 | blah_string.with_pattern("%d%d"), 45 | ] 46 | |> string.join("") 47 | 48 | 5 -> 49 | [ 50 | adjective, 51 | string.replace(string.lowercase(name), " ", "."), 52 | blah_string.with_pattern("%d%d"), 53 | ] 54 | |> string.join(".") 55 | 56 | 6 -> 57 | [ 58 | adjective, 59 | string.replace(string.lowercase(name), " ", "-"), 60 | blah_string.with_pattern("%d%d"), 61 | ] 62 | |> string.join("-") 63 | 64 | _ -> 65 | [ 66 | adjective, 67 | string.replace(string.lowercase(name), " ", "_"), 68 | blah_string.with_pattern("%d%d"), 69 | ] 70 | |> string.join("_") 71 | } 72 | } 73 | 74 | pub fn email(name) { 75 | let email_domain = get_random_item(email_domains) 76 | 77 | [username(name), email_domain] 78 | |> string.join("@") 79 | } 80 | 81 | pub fn password() { 82 | let length = get_random_int(8, 32) 83 | blah_string.alphanumeric(length) 84 | } 85 | 86 | pub fn passphrase() { 87 | [ 88 | word.adjective(), 89 | name.first_name() 90 | |> string.lowercase(), 91 | word.verb(), 92 | word.adverb(), 93 | ] 94 | |> string.join(" ") 95 | } 96 | 97 | pub fn domain_name() { 98 | let adjective = word.adjective() 99 | let noun = word.noun() 100 | 101 | let nonce = get_random_int(4, 2048) 102 | let hostname = case nonce % 3 { 103 | 0 -> 104 | [adjective, noun] 105 | |> string.join(".") 106 | 107 | 1 -> 108 | [adjective, noun] 109 | |> string.join("-") 110 | 111 | _ -> 112 | [adjective, noun] 113 | |> string.join("_") 114 | } 115 | 116 | let suffix = get_random_item(domain_suffixes) 117 | 118 | [hostname, suffix] 119 | |> string.join(".") 120 | } 121 | 122 | pub fn uri() { 123 | let nonce = get_random_int(4, 2048) 124 | let protocol = get_random_item(protocols) 125 | 126 | case nonce % 4 { 127 | 0 -> 128 | [protocol, "://", domain_name()] 129 | |> string.join("") 130 | 131 | 1 -> 132 | [protocol, "://", domain_name(), "/"] 133 | |> string.join("") 134 | 135 | 2 -> 136 | [ 137 | protocol, 138 | "://", 139 | domain_name(), 140 | "/", 141 | list.repeat("", get_random_int(2, 8)) 142 | |> list.map(fn(_) { word.noun() }) 143 | |> string.join("/"), 144 | ] 145 | |> string.join("") 146 | 147 | _ -> 148 | [ 149 | protocol, 150 | "://", 151 | domain_name(), 152 | "/", 153 | list.repeat("", get_random_int(2, 8)) 154 | |> list.map(fn(_) { word.noun() }) 155 | |> string.join("/"), 156 | "/", 157 | ] 158 | |> string.join("") 159 | } 160 | } 161 | 162 | pub fn ip_v4() { 163 | list.repeat("", 4) 164 | |> list.map(fn(_) { int.random(256) }) 165 | |> list.map(int.to_string) 166 | |> string.join(".") 167 | } 168 | 169 | pub fn ip_v6() { 170 | list.repeat("", 8) 171 | |> list.map(fn(_) { int.random(65_536) }) 172 | |> list.map(fn(field) { 173 | field 174 | |> int.to_base16 175 | |> string.lowercase 176 | }) 177 | |> string.join(":") 178 | } 179 | 180 | pub fn mac() { 181 | list.repeat("", 6) 182 | |> list.map(fn(_) { int.random(256) }) 183 | |> list.map(fn(field) { 184 | field 185 | |> int.to_base16 186 | |> string.lowercase 187 | }) 188 | |> string.join(":") 189 | } 190 | 191 | pub fn long_hex_color() { 192 | [ 193 | "#", 194 | ..list.repeat("", 3) 195 | |> list.map(fn(_) { int.random(256) }) 196 | |> list.map(fn(field) { 197 | field 198 | |> int.to_base16 199 | |> string.lowercase 200 | |> string.pad_start(2, "0") 201 | }) 202 | ] 203 | |> string.join("") 204 | } 205 | 206 | pub fn short_hex_color() { 207 | [ 208 | "#", 209 | ..list.repeat("", 3) 210 | |> list.map(fn(_) { int.random(16) }) 211 | |> list.map(fn(field) { 212 | field 213 | |> int.to_base16 214 | |> string.lowercase 215 | }) 216 | ] 217 | |> string.join("") 218 | } 219 | 220 | pub fn hex_color() { 221 | let nonce = get_random_int(4, 2048) 222 | 223 | case nonce % 2 { 224 | 0 -> long_hex_color() 225 | _ -> short_hex_color() 226 | } 227 | } 228 | 229 | pub fn status_code() { 230 | let #(_, codes) = get_random_item(status_codes) 231 | get_random_item(codes) 232 | } 233 | 234 | pub fn status_code_in_class(class: HTTPStatusClass) { 235 | let assert [#(_, codes)] = 236 | list.filter(status_codes, fn(kv) { pair.first(kv) == class }) 237 | 238 | get_random_item(codes) 239 | } 240 | 241 | const email_domains = [ 242 | "aol.com", "gmail.com", "hotmail.com", "live.com", "mail.ru", "msn.com", 243 | "outlook.com", "proton.me", "protonmail.com", "yahoo.com", "ymail.com", 244 | ] 245 | 246 | const domain_suffixes = [ 247 | "co", "com", "edu", "gov", "int", "io", "mil", "net", "org", 248 | ] 249 | 250 | const protocols = ["http", "https"] 251 | 252 | const status_codes = [ 253 | #(Informational, [100, 101, 102, 103]), 254 | #(Successful, [200, 201, 202, 203, 204, 205, 206, 207, 208, 226]), 255 | #(Redirection, [300, 301, 302, 303, 304, 305, 306, 307, 308]), 256 | #( 257 | ClientError, 258 | [ 259 | 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 260 | 415, 416, 417, 418, 421, 422, 423, 424, 425, 426, 428, 429, 431, 451, 261 | ], 262 | ), #(ServerError, [500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511]), 263 | ] 264 | -------------------------------------------------------------------------------- /src/blah/it/address.gleam: -------------------------------------------------------------------------------- 1 | import gleam/string 2 | 3 | import blah/locales/it/address 4 | import blah/utils.{get_random_item} 5 | 6 | pub fn country() { 7 | get_random_item(address.countries) 8 | } 9 | 10 | pub fn region() { 11 | get_random_item(address.regions) 12 | } 13 | 14 | pub fn city() { 15 | get_random_item(address.cities) 16 | } 17 | 18 | pub fn province() { 19 | get_random_item(address.provinces) 20 | } 21 | 22 | pub fn street() { 23 | let street = get_random_item(address.streets) 24 | // most of Italian street names starts with "via" 25 | ["Via", street] 26 | |> string.join(" ") 27 | } 28 | 29 | pub fn direction() { 30 | get_random_item(address.directions) 31 | } 32 | 33 | pub fn direction_codes() { 34 | get_random_item(address.direction_codes) 35 | } 36 | 37 | pub fn time_zones() { 38 | get_random_item(address.time_zones) 39 | } 40 | -------------------------------------------------------------------------------- /src/blah/it/lorem.gleam: -------------------------------------------------------------------------------- 1 | import blah/utils 2 | 3 | import blah/locales/it/lorem 4 | 5 | pub fn word() { 6 | utils.get_random_item(lorem.words) 7 | } 8 | -------------------------------------------------------------------------------- /src/blah/it/name.gleam: -------------------------------------------------------------------------------- 1 | import gleam/string 2 | 3 | import blah/locales/it/name 4 | import blah/utils.{get_random_item} 5 | 6 | pub fn first_name() { 7 | get_random_item(name.first_names()) 8 | } 9 | 10 | pub fn female_first_name() { 11 | get_random_item(name.female_first_names) 12 | } 13 | 14 | pub fn male_first_name() { 15 | get_random_item(name.male_first_names) 16 | } 17 | 18 | pub fn last_name() { 19 | get_random_item(name.last_names) 20 | } 21 | 22 | pub fn full_name() { 23 | [first_name(), last_name()] 24 | |> string.join(" ") 25 | } 26 | 27 | pub fn female_full_name() { 28 | [female_first_name(), last_name()] 29 | |> string.join(" ") 30 | } 31 | 32 | pub fn male_full_name() { 33 | [male_first_name(), last_name()] 34 | |> string.join(" ") 35 | } 36 | -------------------------------------------------------------------------------- /src/blah/it/other.gleam: -------------------------------------------------------------------------------- 1 | import blah/utils 2 | 3 | import blah/locales/it/finance 4 | 5 | pub fn currency() { 6 | utils.get_random_item(finance.currencies) 7 | } 8 | -------------------------------------------------------------------------------- /src/blah/it/word.gleam: -------------------------------------------------------------------------------- 1 | import blah/locales/it/word 2 | import blah/utils.{get_random_item} 3 | 4 | pub fn verb() { 5 | get_random_item(word.verbs) 6 | } 7 | 8 | pub fn preposition() { 9 | get_random_item(word.prepositions) 10 | } 11 | 12 | pub fn noun() { 13 | get_random_item(word.nouns) 14 | } 15 | 16 | pub fn interjection() { 17 | get_random_item(word.interjections) 18 | } 19 | 20 | pub fn conjunction() { 21 | get_random_item(word.conjunctions) 22 | } 23 | 24 | pub fn adverb() { 25 | get_random_item(word.adverbs) 26 | } 27 | 28 | pub fn adjective() { 29 | get_random_item(word.adjectives) 30 | } 31 | -------------------------------------------------------------------------------- /src/blah/locales/en/address.gleam: -------------------------------------------------------------------------------- 1 | pub const default_country = "United States of America" 2 | 3 | pub const countries = [ 4 | "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", 5 | "Anguilla", "Antarctica (the territory South of 60 deg S)", 6 | "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", 7 | "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", 8 | "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", 9 | "Bosnia and Herzegovina", "Botswana", "Bouvet Island (Bouvetoya)", "Brazil", 10 | "British Indian Ocean Territory (Chagos Archipelago)", "Brunei Darussalam", 11 | "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", 12 | "Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", 13 | "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", 14 | "Congo", "Cook Islands", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", 15 | "Cyprus", "Czech Republic", "Democratic People's Republic of Korea", "Denmark", 16 | "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", 17 | "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", 18 | "Falkland Islands (Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", 19 | "French Guiana", "French Polynesia", "French Southern Territories", "Gabon", 20 | "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", 21 | "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", 22 | "Guinea-Bissau", "Guyana", "Haiti", "Heard Island and McDonald Islands", 23 | "Holy See (Vatican City State)", "Honduras", "Hong Kong", "Hungary", "Iceland", 24 | "India", "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", 25 | "Italy", "Jamaica", "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", 26 | "Kiribati", "Kuwait", "Kyrgyz Republic", "Lao People's Democratic Republic", 27 | "Latvia", "Lebanon", "Lesotho", "Liberia", "Libyan Arab Jamahiriya", 28 | "Liechtenstein", "Lithuania", "Luxembourg", "Macao", "Macedonia", "Madagascar", 29 | "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", 30 | "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", 31 | "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", 32 | "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands Antilles", 33 | "Netherlands", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", 34 | "Niue", "Norfolk Island", "Northern Mariana Islands", "Norway", "Oman", 35 | "Pakistan", "Palau", "Palestinian Territory", "Panama", "Papua New Guinea", 36 | "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", 37 | "Puerto Rico", "Qatar", "Republic of Korea", "Reunion", "Romania", 38 | "Russian Federation", "Rwanda", "Saint Barthelemy", "Saint Helena", 39 | "Saint Kitts and Nevis", "Saint Lucia", "Saint Martin", 40 | "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", 41 | "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", 42 | "Seychelles", "Sierra Leone", "Singapore", "Slovakia (Slovak Republic)", 43 | "Slovenia", "Solomon Islands", "Somalia", "South Africa", 44 | "South Georgia and the South Sandwich Islands", "Spain", "Sri Lanka", "Sudan", 45 | "Suriname", "Svalbard & Jan Mayen Islands", "Swaziland", "Sweden", 46 | "Switzerland", "Syrian Arab Republic", "Taiwan", "Tajikistan", "Tanzania", 47 | "Thailand", "Timor-Leste", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", 48 | "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", 49 | "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", 50 | "United States Minor Outlying Islands", "United States of America", "Uruguay", 51 | "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Virgin Islands, British", 52 | "Virgin Islands, U.S.", "Wallis and Futuna", "Western Sahara", "Yemen", 53 | "Zambia", "Zimbabwe", 54 | ] 55 | 56 | pub const country_codes = [ 57 | "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", 58 | "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", 59 | "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", 60 | "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", 61 | "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", 62 | "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", 63 | "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", 64 | "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", 65 | "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", 66 | "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", 67 | "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", 68 | "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", 69 | "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", 70 | "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", 71 | "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", 72 | "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", 73 | "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", 74 | "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", 75 | "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", 76 | "ZM", "ZW", 77 | ] 78 | 79 | pub const alpha3_country_codes = [ 80 | "BGD", "BEL", "BFA", "BGR", "BIH", "BRB", "WLF", "BLM", "BMU", "BRN", "BOL", 81 | "BHR", "BDI", "BEN", "BTN", "JAM", "BVT", "BWA", "WSM", "BES", "BRA", "BHS", 82 | "JEY", "BLR", "BLZ", "RUS", "RWA", "SRB", "TLS", "REU", "TKM", "TJK", "ROU", 83 | "TKL", "GNB", "GUM", "GTM", "SGS", "GRC", "GNQ", "GLP", "JPN", "GUY", "GGY", 84 | "GUF", "GEO", "GRD", "GBR", "GAB", "SLV", "GIN", "GMB", "GRL", "GIB", "GHA", 85 | "OMN", "TUN", "JOR", "HRV", "HTI", "HUN", "HKG", "HND", "HMD", "VEN", "PRI", 86 | "PSE", "PLW", "PRT", "SJM", "PRY", "IRQ", "PAN", "PYF", "PNG", "PER", "PAK", 87 | "PHL", "PCN", "POL", "SPM", "ZMB", "ESH", "EST", "EGY", "ZAF", "ECU", "ITA", 88 | "VNM", "SLB", "ETH", "SOM", "ZWE", "SAU", "ESP", "ERI", "MNE", "MDA", "MDG", 89 | "MAF", "MAR", "MCO", "UZB", "MMR", "MLI", "MAC", "MNG", "MHL", "MKD", "MUS", 90 | "MLT", "MWI", "MDV", "MTQ", "MNP", "MSR", "MRT", "IMN", "UGA", "TZA", "MYS", 91 | "MEX", "ISR", "FRA", "IOT", "SHN", "FIN", "FJI", "FLK", "FSM", "FRO", "NIC", 92 | "NLD", "NOR", "NAM", "VUT", "NCL", "NER", "NFK", "NGA", "NZL", "NPL", "NRU", 93 | "NIU", "COK", "XKX", "CIV", "CHE", "COL", "CHN", "CMR", "CHL", "CCK", "CAN", 94 | "COG", "CAF", "COD", "CZE", "CYP", "CXR", "CRI", "CUW", "CPV", "CUB", "SWZ", 95 | "SYR", "SXM", "KGZ", "KEN", "SSD", "SUR", "KIR", "KHM", "KNA", "COM", "STP", 96 | "SVK", "KOR", "SVN", "PRK", "KWT", "SEN", "SMR", "SLE", "SYC", "KAZ", "CYM", 97 | "SGP", "SWE", "SDN", "DOM", "DMA", "DJI", "DNK", "VGB", "DEU", "YEM", "DZA", 98 | "USA", "URY", "MYT", "UMI", "LBN", "LCA", "LAO", "TUV", "TWN", "TTO", "TUR", 99 | "LKA", "LIE", "LVA", "TON", "LTU", "LUX", "LBR", "LSO", "THA", "ATF", "TGO", 100 | "TCD", "TCA", "LBY", "VAT", "VCT", "ARE", "AND", "ATG", "AFG", "AIA", "VIR", 101 | "ISL", "IRN", "ARM", "ALB", "AGO", "ATA", "ASM", "ARG", "AUS", "AUT", "ABW", 102 | "IND", "ALA", "AZE", "IRL", "IDN", "UKR", "QAT", "MOZ", 103 | ] 104 | 105 | pub const states = [ 106 | "Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", 107 | "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", 108 | "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", 109 | "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", 110 | "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", 111 | "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", 112 | "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", 113 | "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", 114 | ] 115 | 116 | pub const state_codes = [ 117 | "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", 118 | "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", 119 | "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", 120 | "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", 121 | ] 122 | 123 | pub const cities = [ 124 | "Abilene", "Akron", "Alafaya", "Alameda", "Albany", "Albuquerque", 125 | "Alexandria", "Alhambra", "Aliso Viejo", "Allen", "Allentown", "Aloha", 126 | "Alpharetta", "Altadena", "Altamonte Springs", "Altoona", "Amarillo", "Ames", 127 | "Anaheim", "Anchorage", "Anderson", "Ankeny", "Ann Arbor", "Annandale", 128 | "Antelope", "Antioch", "Apex", "Apopka", "Apple Valley", "Appleton", "Arcadia", 129 | "Arden-Arcade", "Arecibo", "Arlington", "Arlington Heights", "Arvada", 130 | "Ashburn", "Asheville", "Aspen Hill", "Atascocita", "Athens-Clarke County", 131 | "Atlanta", "Attleboro", "Auburn", "Augusta-Richmond County", "Aurora", 132 | "Austin", "Avondale", "Azusa", "Bakersfield", "Baldwin Park", "Baltimore", 133 | "Barnstable Town", "Bartlett", "Baton Rouge", "Battle Creek", "Bayamon", 134 | "Bayonne", "Baytown", "Beaumont", "Beavercreek", "Beaverton", "Bedford", 135 | "Bel Air South", "Bell Gardens", "Belleville", "Bellevue", "Bellflower", 136 | "Bellingham", "Bend", "Bentonville", "Berkeley", "Berwyn", "Bethesda", 137 | "Bethlehem", "Billings", "Biloxi", "Binghamton", "Birmingham", "Bismarck", 138 | "Blacksburg", "Blaine", "Bloomington", "Blue Springs", "Boca Raton", 139 | "Boise City", "Bolingbrook", "Bonita Springs", "Bossier City", "Boston", 140 | "Bothell", "Boulder", "Bountiful", "Bowie", "Bowling Green", "Boynton Beach", 141 | "Bozeman", "Bradenton", "Brandon", "Brentwood", "Bridgeport", "Bristol", 142 | "Brockton", "Broken Arrow", "Brookhaven", "Brookline", "Brooklyn Park", 143 | "Broomfield", "Brownsville", "Bryan", "Buckeye", "Buena Park", "Buffalo", 144 | "Buffalo Grove", "Burbank", "Burien", "Burke", "Burleson", "Burlington", 145 | "Burnsville", "Caguas", "Caldwell", "Camarillo", "Cambridge", "Camden", 146 | "Canton", "Cape Coral", "Carlsbad", "Carmel", "Carmichael", "Carolina", 147 | "Carrollton", "Carson", "Carson City", "Cary", "Casa Grande", "Casas Adobes", 148 | "Casper", "Castle Rock", "Castro Valley", "Catalina Foothills", 149 | "Cathedral City", "Catonsville", "Cedar Hill", "Cedar Park", "Cedar Rapids", 150 | "Centennial", "Centreville", "Ceres", "Cerritos", "Champaign", "Chandler", 151 | "Chapel Hill", "Charleston", "Charlotte", "Charlottesville", "Chattanooga", 152 | "Cheektowaga", "Chesapeake", "Chesterfield", "Cheyenne", "Chicago", "Chico", 153 | "Chicopee", "Chino", "Chino Hills", "Chula Vista", "Cicero", "Cincinnati", 154 | "Citrus Heights", "Clarksville", "Clearwater", "Cleveland", 155 | "Cleveland Heights", "Clifton", "Clovis", "Coachella", "Coconut Creek", 156 | "Coeur d'Alene", "College Station", "Collierville", "Colorado Springs", 157 | "Colton", "Columbia", "Columbus", "Commerce City", "Compton", "Concord", 158 | "Conroe", "Conway", "Coon Rapids", "Coral Gables", "Coral Springs", "Corona", 159 | "Corpus Christi", "Corvallis", "Costa Mesa", "Council Bluffs", "Country Club", 160 | "Covina", "Cranston", "Cupertino", "Cutler Bay", "Cuyahoga Falls", "Cypress", 161 | "Dale City", "Dallas", "Daly City", "Danbury", "Danville", "Davenport", 162 | "Davie", "Davis", "Dayton", "Daytona Beach", "DeKalb", "DeSoto", "Dearborn", 163 | "Dearborn Heights", "Decatur", "Deerfield Beach", "Delano", "Delray Beach", 164 | "Deltona", "Denton", "Denver", "Des Moines", "Des Plaines", "Detroit", 165 | "Diamond Bar", "Doral", "Dothan", "Downers Grove", "Downey", "Draper", 166 | "Dublin", "Dubuque", "Duluth", "Dundalk", "Dunwoody", "Durham", "Eagan", 167 | "East Hartford", "East Honolulu", "East Lansing", "East Los Angeles", 168 | "East Orange", "East Providence", "Eastvale", "Eau Claire", "Eden Prairie", 169 | "Edina", "Edinburg", "Edmond", "El Cajon", "El Centro", "El Dorado Hills", 170 | "El Monte", "El Paso", "Elgin", "Elizabeth", "Elk Grove", "Elkhart", 171 | "Ellicott City", "Elmhurst", "Elyria", "Encinitas", "Enid", "Enterprise", 172 | "Erie", "Escondido", "Euclid", "Eugene", "Euless", "Evanston", "Evansville", 173 | "Everett", "Fairfield", "Fall River", "Fargo", "Farmington", 174 | "Farmington Hills", "Fayetteville", "Federal Way", "Findlay", "Fishers", 175 | "Flagstaff", "Flint", "Florence-Graham", "Florin", "Florissant", 176 | "Flower Mound", "Folsom", "Fond du Lac", "Fontana", "Fort Collins", 177 | "Fort Lauderdale", "Fort Myers", "Fort Pierce", "Fort Smith", "Fort Wayne", 178 | "Fort Worth", "Fountain Valley", "Fountainebleau", "Framingham", "Franklin", 179 | "Frederick", "Freeport", "Fremont", "Fresno", "Frisco", "Fullerton", 180 | "Gainesville", "Gaithersburg", "Galveston", "Garden Grove", "Gardena", 181 | "Garland", "Gary", "Gastonia", "Georgetown", "Germantown", "Gilbert", "Gilroy", 182 | "Glen Burnie", "Glendale", "Glendora", "Glenview", "Goodyear", "Grand Forks", 183 | "Grand Island", "Grand Junction", "Grand Prairie", "Grand Rapids", "Grapevine", 184 | "Great Falls", "Greeley", "Green Bay", "Greensboro", "Greenville", "Greenwood", 185 | "Gresham", "Guaynabo", "Gulfport", "Hacienda Heights", "Hackensack", 186 | "Haltom City", "Hamilton", "Hammond", "Hampton", "Hanford", "Harlingen", 187 | "Harrisburg", "Harrisonburg", "Hartford", "Hattiesburg", "Haverhill", 188 | "Hawthorne", "Hayward", "Hemet", "Hempstead", "Henderson", "Hendersonville", 189 | "Hesperia", "Hialeah", "Hicksville", "High Point", "Highland", 190 | "Highlands Ranch", "Hillsboro", "Hilo", "Hoboken", "Hoffman Estates", 191 | "Hollywood", "Homestead", "Honolulu", "Hoover", "Houston", "Huntersville", 192 | "Huntington", "Huntington Beach", "Huntington Park", "Huntsville", 193 | "Hutchinson", "Idaho Falls", "Independence", "Indianapolis", "Indio", 194 | "Inglewood", "Iowa City", "Irondequoit", "Irvine", "Irving", "Jackson", 195 | "Jacksonville", "Janesville", "Jefferson City", "Jeffersonville", 196 | "Jersey City", "Johns Creek", "Johnson City", "Joliet", "Jonesboro", "Joplin", 197 | "Jupiter", "Jurupa Valley", "Kalamazoo", "Kannapolis", "Kansas City", "Kearny", 198 | "Keller", "Kendale Lakes", "Kendall", "Kenner", "Kennewick", "Kenosha", "Kent", 199 | "Kentwood", "Kettering", "Killeen", "Kingsport", "Kirkland", "Kissimmee", 200 | "Knoxville", "Kokomo", "La Crosse", "La Habra", "La Mesa", "La Mirada", 201 | "Lacey", "Lafayette", "Laguna Niguel", "Lake Charles", "Lake Elsinore", 202 | "Lake Forest", "Lake Havasu City", "Lake Ridge", "Lakeland", "Lakeville", 203 | "Lakewood", "Lancaster", "Lansing", "Laredo", "Largo", "Las Cruces", 204 | "Las Vegas", "Lauderhill", "Lawrence", "Lawton", "Layton", "League City", 205 | "Lee's Summit", "Leesburg", "Lehi", "Lehigh Acres", "Lenexa", "Levittown", 206 | "Lewisville", "Lexington-Fayette", "Lincoln", "Linden", "Little Rock", 207 | "Littleton", "Livermore", "Livonia", "Lodi", "Logan", "Lombard", "Lompoc", 208 | "Long Beach", "Longmont", "Longview", "Lorain", "Los Angeles", 209 | "Louisville/Jefferson County", "Loveland", "Lowell", "Lubbock", "Lynchburg", 210 | "Lynn", "Lynwood", "Macon-Bibb County", "Madera", "Madison", "Malden", 211 | "Manchester", "Manhattan", "Mansfield", "Manteca", "Maple Grove", "Margate", 212 | "Maricopa", "Marietta", "Marysville", "Mayaguez", "McAllen", "McKinney", 213 | "McLean", "Medford", "Melbourne", "Memphis", "Menifee", "Mentor", "Merced", 214 | "Meriden", "Meridian", "Mesa", "Mesquite", "Metairie", "Methuen Town", "Miami", 215 | "Miami Beach", "Miami Gardens", "Middletown", "Midland", "Midwest City", 216 | "Milford", "Millcreek", "Milpitas", "Milwaukee", "Minneapolis", "Minnetonka", 217 | "Minot", "Miramar", "Mishawaka", "Mission", "Mission Viejo", "Missoula", 218 | "Missouri City", "Mobile", "Modesto", "Moline", "Monroe", "Montebello", 219 | "Monterey Park", "Montgomery", "Moore", "Moreno Valley", "Morgan Hill", 220 | "Mount Pleasant", "Mount Prospect", "Mount Vernon", "Mountain View", "Muncie", 221 | "Murfreesboro", "Murray", "Murrieta", "Nampa", "Napa", "Naperville", "Nashua", 222 | "Nashville-Davidson", "National City", "New Bedford", "New Braunfels", 223 | "New Britain", "New Brunswick", "New Haven", "New Orleans", "New Rochelle", 224 | "New York", "Newark", "Newport Beach", "Newport News", "Newton", 225 | "Niagara Falls", "Noblesville", "Norfolk", "Normal", "Norman", 226 | "North Bethesda", "North Charleston", "North Highlands", "North Las Vegas", 227 | "North Lauderdale", "North Little Rock", "North Miami", "North Miami Beach", 228 | "North Port", "North Richland Hills", "Norwalk", "Novato", "Novi", "O'Fallon", 229 | "Oak Lawn", "Oak Park", "Oakland", "Oakland Park", "Ocala", "Oceanside", 230 | "Odessa", "Ogden", "Oklahoma City", "Olathe", "Olympia", "Omaha", "Ontario", 231 | "Orange", "Orem", "Orland Park", "Orlando", "Oro Valley", "Oshkosh", 232 | "Overland Park", "Owensboro", "Oxnard", "Palatine", "Palm Bay", 233 | "Palm Beach Gardens", "Palm Coast", "Palm Desert", "Palm Harbor", 234 | "Palm Springs", "Palmdale", "Palo Alto", "Paradise", "Paramount", "Parker", 235 | "Parma", "Pasadena", "Pasco", "Passaic", "Paterson", "Pawtucket", "Peabody", 236 | "Pearl City", "Pearland", "Pembroke Pines", "Pensacola", "Peoria", "Perris", 237 | "Perth Amboy", "Petaluma", "Pflugerville", "Pharr", "Philadelphia", "Phoenix", 238 | "Pico Rivera", "Pine Bluff", "Pine Hills", "Pinellas Park", "Pittsburg", 239 | "Pittsburgh", "Pittsfield", "Placentia", "Plainfield", "Plano", "Plantation", 240 | "Pleasanton", "Plymouth", "Pocatello", "Poinciana", "Pomona", "Pompano Beach", 241 | "Ponce", "Pontiac", "Port Arthur", "Port Charlotte", "Port Orange", 242 | "Port St. Lucie", "Portage", "Porterville", "Portland", "Portsmouth", 243 | "Potomac", "Poway", "Providence", "Provo", "Pueblo", "Quincy", "Racine", 244 | "Raleigh", "Rancho Cordova", "Rancho Cucamonga", "Rancho Palos Verdes", 245 | "Rancho Santa Margarita", "Rapid City", "Reading", "Redding", "Redlands", 246 | "Redmond", "Redondo Beach", "Redwood City", "Reno", "Renton", "Reston", 247 | "Revere", "Rialto", "Richardson", "Richland", "Richmond", "Rio Rancho", 248 | "Riverside", "Riverton", "Riverview", "Roanoke", "Rochester", 249 | "Rochester Hills", "Rock Hill", "Rockford", "Rocklin", "Rockville", "Rockwall", 250 | "Rocky Mount", "Rogers", "Rohnert Park", "Rosemead", "Roseville", "Roswell", 251 | "Round Rock", "Rowland Heights", "Rowlett", "Royal Oak", "Sacramento", 252 | "Saginaw", "Salem", "Salina", "Salinas", "Salt Lake City", "Sammamish", 253 | "San Angelo", "San Antonio", "San Bernardino", "San Bruno", 254 | "San Buenaventura (Ventura)", "San Clemente", "San Diego", "San Francisco", 255 | "San Jacinto", "San Jose", "San Juan", "San Leandro", "San Luis Obispo", 256 | "San Marcos", "San Mateo", "San Rafael", "San Ramon", "San Tan Valley", 257 | "Sandy", "Sandy Springs", "Sanford", "Santa Ana", "Santa Barbara", 258 | "Santa Clara", "Santa Clarita", "Santa Cruz", "Santa Fe", "Santa Maria", 259 | "Santa Monica", "Santa Rosa", "Santee", "Sarasota", "Savannah", "Sayreville", 260 | "Schaumburg", "Schenectady", "Scottsdale", "Scranton", "Seattle", "Severn", 261 | "Shawnee", "Sheboygan", "Shoreline", "Shreveport", "Sierra Vista", 262 | "Silver Spring", "Simi Valley", "Sioux City", "Sioux Falls", "Skokie", 263 | "Smyrna", "Somerville", "South Bend", "South Gate", "South Hill", 264 | "South Jordan", "South San Francisco", "South Valley", "South Whittier", 265 | "Southaven", "Southfield", "Sparks", "Spokane", "Spokane Valley", "Spring", 266 | "Spring Hill", "Spring Valley", "Springdale", "Springfield", "St. Charles", 267 | "St. Clair Shores", "St. Cloud", "St. George", "St. Joseph", "St. Louis", 268 | "St. Louis Park", "St. Paul", "St. Peters", "St. Petersburg", "Stamford", 269 | "State College", "Sterling Heights", "Stillwater", "Stockton", "Stratford", 270 | "Strongsville", "Suffolk", "Sugar Land", "Summerville", "Sunnyvale", "Sunrise", 271 | "Sunrise Manor", "Surprise", "Syracuse", "Tacoma", "Tallahassee", "Tamarac", 272 | "Tamiami", "Tampa", "Taunton", "Taylor", "Taylorsville", "Temecula", "Tempe", 273 | "Temple", "Terre Haute", "Texas City", "The Hammocks", "The Villages", 274 | "The Woodlands", "Thornton", "Thousand Oaks", "Tigard", "Tinley Park", 275 | "Titusville", "Toledo", "Toms River", "Tonawanda", "Topeka", "Torrance", 276 | "Town 'n' Country", "Towson", "Tracy", "Trenton", "Troy", "Trujillo Alto", 277 | "Tuckahoe", "Tucson", "Tulare", "Tulsa", "Turlock", "Tuscaloosa", "Tustin", 278 | "Twin Falls", "Tyler", "Union City", "University", "Upland", "Urbana", 279 | "Urbandale", "Utica", "Vacaville", "Valdosta", "Vallejo", "Vancouver", 280 | "Victoria", "Victorville", "Vineland", "Virginia Beach", "Visalia", "Vista", 281 | "Waco", "Waipahu", "Waldorf", "Walnut Creek", "Waltham", "Warner Robins", 282 | "Warren", "Warwick", "Washington", "Waterbury", "Waterloo", "Watsonville", 283 | "Waukegan", "Waukesha", "Wauwatosa", "Wellington", "Wesley Chapel", 284 | "West Allis", "West Babylon", "West Covina", "West Des Moines", 285 | "West Hartford", "West Haven", "West Jordan", "West Lafayette", 286 | "West New York", "West Palm Beach", "West Sacramento", "West Seneca", 287 | "West Valley City", "Westfield", "Westland", "Westminster", "Weston", 288 | "Weymouth Town", "Wheaton", "White Plains", "Whittier", "Wichita", 289 | "Wichita Falls", "Wilmington", "Wilson", "Winston-Salem", "Woodbury", 290 | "Woodland", "Worcester", "Wylie", "Wyoming", "Yakima", "Yonkers", 291 | "Yorba Linda", "York", "Youngstown", "Yuba City", "Yucaipa", "Yuma", 292 | ] 293 | 294 | pub const streets = [ 295 | "Alley", "Avenue", "Branch", "Bridge", "Brook", "Brooks", "Burg", "Burgs", 296 | "Bypass", "Camp", "Canyon", "Cape", "Causeway", "Center", "Centers", "Circle", 297 | "Circles", "Cliff", "Cliffs", "Club", "Common", "Corner", "Corners", "Course", 298 | "Court", "Courts", "Cove", "Coves", "Creek", "Crescent", "Crest", "Crossing", 299 | "Crossroad", "Curve", "Dale", "Dam", "Divide", "Drive", "Drive", "Drives", 300 | "Estate", "Estates", "Expressway", "Extension", "Extensions", "Fall", "Falls", 301 | "Ferry", "Field", "Fields", "Flat", "Flats", "Ford", "Fords", "Forest", 302 | "Forge", "Forges", "Fork", "Forks", "Fort", "Freeway", "Garden", "Gardens", 303 | "Gateway", "Glen", "Glens", "Green", "Greens", "Grove", "Groves", "Harbor", 304 | "Harbors", "Haven", "Heights", "Highway", "Hill", "Hills", "Hollow", "Inlet", 305 | "Inlet", "Island", "Island", "Islands", "Islands", "Isle", "Isle", "Junction", 306 | "Junctions", "Key", "Keys", "Knoll", "Knolls", "Lake", "Lakes", "Land", 307 | "Landing", "Lane", "Light", "Lights", "Loaf", "Lock", "Locks", "Locks", 308 | "Lodge", "Lodge", "Loop", "Mall", "Manor", "Manors", "Meadow", "Meadows", 309 | "Mews", "Mill", "Mills", "Mission", "Mission", "Motorway", "Mount", "Mountain", 310 | "Mountain", "Mountains", "Mountains", "Neck", "Orchard", "Oval", "Overpass", 311 | "Park", "Parks", "Parkway", "Parkways", "Pass", "Passage", "Path", "Pike", 312 | "Pine", "Pines", "Place", "Plain", "Plains", "Plains", "Plaza", "Plaza", 313 | "Point", "Points", "Port", "Port", "Ports", "Ports", "Prairie", "Prairie", 314 | "Radial", "Ramp", "Ranch", "Rapid", "Rapids", "Rest", "Ridge", "Ridges", 315 | "River", "Road", "Roads", "Roads", "Route", "Row", "Rue", "Run", "Shoal", 316 | "Shoals", "Shore", "Shores", "Skyway", "Spring", "Springs", "Springs", "Spur", 317 | "Spurs", "Square", "Square", "Squares", "Squares", "Station", "Station", 318 | "Stravenue", "Stravenue", "Stream", "Stream", "Street", "Street", "Streets", 319 | "Summit", "Summit", "Terrace", "Throughway", "Trace", "Track", "Trafficway", 320 | "Trail", "Trail", "Tunnel", "Tunnel", "Turnpike", "Turnpike", "Underpass", 321 | "Union", "Unions", "Valley", "Valleys", "Via", "Viaduct", "View", "Views", 322 | "Village", "Village", "Villages", "Ville", "Vista", "Vista", "Walk", "Walks", 323 | "Wall", "Way", "Ways", "Well", "Wells", 324 | ] 325 | 326 | pub const directions = [ 327 | "North", "East", "South", "West", "Northeast", "Northwest", "Southeast", 328 | "Southwest", 329 | ] 330 | 331 | pub const direction_codes = ["N", "E", "S", "W", "NE", "NW", "SE", "SW"] 332 | 333 | pub const time_zones = [ 334 | "Africa/Algiers", "Africa/Cairo", "Africa/Casablanca", "Africa/Harare", 335 | "Africa/Johannesburg", "Africa/Monrovia", "Africa/Nairobi", 336 | "America/Argentina/Buenos_Aires", "America/Bogota", "America/Caracas", 337 | "America/Chicago", "America/Chihuahua", "America/Denver", "America/Godthab", 338 | "America/Guatemala", "America/Guyana", "America/Halifax", 339 | "America/Indiana/Indianapolis", "America/Juneau", "America/La_Paz", 340 | "America/Lima", "America/Los_Angeles", "America/Mazatlan", 341 | "America/Mexico_City", "America/Monterrey", "America/New_York", 342 | "America/Phoenix", "America/Regina", "America/Santiago", "America/Sao_Paulo", 343 | "America/St_Johns", "America/Tijuana", "Asia/Almaty", "Asia/Baghdad", 344 | "Asia/Baku", "Asia/Bangkok", "Asia/Chongqing", "Asia/Colombo", "Asia/Dhaka", 345 | "Asia/Hong_Kong", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jerusalem", 346 | "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", 347 | "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuwait", 348 | "Asia/Magadan", "Asia/Muscat", "Asia/Novosibirsk", "Asia/Rangoon", 349 | "Asia/Riyadh", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", 350 | "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tokyo", 351 | "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Vladivostok", "Asia/Yakutsk", 352 | "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Cape_Verde", 353 | "Atlantic/South_Georgia", "Australia/Adelaide", "Australia/Brisbane", 354 | "Australia/Darwin", "Australia/Hobart", "Australia/Melbourne", 355 | "Australia/Perth", "Australia/Sydney", "Etc/UTC", "Europe/Amsterdam", 356 | "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", 357 | "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Copenhagen", 358 | "Europe/Dublin", "Europe/Helsinki", "Europe/Istanbul", "Europe/Kiev", 359 | "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Madrid", 360 | "Europe/Minsk", "Europe/Moscow", "Europe/Paris", "Europe/Prague", 361 | "Europe/Riga", "Europe/Rome", "Europe/Sarajevo", "Europe/Skopje", 362 | "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Vienna", 363 | "Europe/Vilnius", "Europe/Warsaw", "Europe/Zagreb", "Pacific/Apia", 364 | "Pacific/Auckland", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Guam", 365 | "Pacific/Honolulu", "Pacific/Majuro", "Pacific/Midway", "Pacific/Noumea", 366 | "Pacific/Pago_Pago", "Pacific/Port_Moresby", "Pacific/Tongatapu", 367 | ] 368 | -------------------------------------------------------------------------------- /src/blah/locales/en/finance.gleam: -------------------------------------------------------------------------------- 1 | pub const currencies = [ 2 | #("Afghanistan Afghani", "AFN", "؋"), #("Armenian Dram", "AMD", "֏"), 3 | #("Albania Lek", "ALL", "Lek"), #("Netherlands Antilles Guilder", "ANG", "ƒ"), 4 | #("Argentina Peso", "ARS", "$"), #("Australia Dollar", "AUD", "$"), 5 | #("Aruba Guilder", "AWG", "ƒ"), #("Azerbaijan Manat", "AZN", "₼"), 6 | #("Bosnia and Herzegovina Convertible Mark", "BAM", "KM"), 7 | #("Barbados Dollar", "BBD", "$"), #("Bangladesh Taka", "BDT", "৳"), 8 | #("Bulgaria Lev", "BGN", "лв"), #("Bermuda Dollar", "BMD", "$"), 9 | #("Brunei Darussalam Dollar", "BND", "$"), #("Bolivia Bolíviano", "BOB", "$b"), 10 | #("Brazil Real", "BRL", "R$"), #("Bahamas Dollar", "BSD", "$"), 11 | #("Botswana Pula", "BWP", "P"), #("Belarus Ruble", "BYN", "Br"), 12 | #("Belize Dollar", "BZD", "BZ$"), #("Canada Dollar", "CAD", "$"), 13 | #("Switzerland Franc", "CHF", "CHF"), #("Chile Peso", "CLP", "$"), 14 | #("China Yuan Renminbi", "CNY", "¥"), #("Colombia Peso", "COP", "$"), 15 | #("Costa Rica Colon", "CRC", "₡"), #("Cuba Peso", "CUP", "₱"), 16 | #("Czech Republic Koruna", "CZK", "Kč"), #("Denmark Krone", "DKK", "kr"), 17 | #("Dominican Republic Peso", "DOP", "RD$"), #("Egypt Pound", "EGP", "£"), 18 | #("Eurozone Euro", "EUR", "€"), #("Fiji Dollar", "FJD", "$"), 19 | #("Falkland Islands (Malvinas) Pound", "FKP", "£"), 20 | #("United Kingdom Pound", "GBP", "£"), #("Georgia Lari", "GEL", "₾"), 21 | #("Guernsey Pound", "GGP", "£"), #("Ghana Cedi", "GHS", "₵"), 22 | #("Gibraltar Pound", "GIP", "£"), #("Guatemala Quetzal", "GTQ", "Q"), 23 | #("Guyana Dollar", "GYD", "$"), #("Hong Kong Dollar", "HKD", "$"), 24 | #("Honduras Lempira", "HNL", "L"), #("Croatia Kuna", "HRK", "kn"), 25 | #("Hungary Forint", "HUF", "Ft"), #("Indonesia Rupiah", "IDR", "Rp"), 26 | #("Israel Shekel", "ILS", "₪"), #("Isle of Man Pound", "IMP", "£"), 27 | #("India Rupee", "INR", "₹"), #("Iran Rial", "IRR", "﷼"), 28 | #("Iceland Krona", "ISK", "kr"), #("Jersey Pound", "JEP", "£"), 29 | #("Jamaica Dollar", "JMD", "J$"), #("Japan Yen", "JPY", "¥"), 30 | #("Kyrgyzstan Som", "KGS", "с"), #("Cambodia Riel", "KHR", "៛"), 31 | #("Korea (North) Won", "KPW", "₩"), #("Korea (South) Won", "KRW", "₩"), 32 | #("Cayman Islands Dollar", "KYD", "$"), #("Kazakhstan Tenge", "KZT", "₸"), 33 | #("Laos Kip", "LAK", "₭"), #("Lebanon Pound", "LBP", "£"), 34 | #("Sri Lanka Rupee", "LKR", "₨"), #("Liberia Dollar", "LRD", "$"), 35 | #("Macedonia Denar", "MKD", "ден"), #("Mongolia Tughrik", "MNT", "₮"), 36 | #("Mauritius Rupee", "MUR", "₨"), #("Mexico Peso", "MXN", "$"), 37 | #("Malaysia Ringgit", "MYR", "RM"), #("Mozambique Metical", "MZN", "MT"), 38 | #("Namibia Dollar", "NAD", "$"), #("Nigeria Naira", "NGN", "₦"), 39 | #("Nicaragua Cordoba", "NIO", "C$"), #("Norway Krone", "NOK", "kr"), 40 | #("Nepal Rupee", "NPR", "₨"), #("New Zealand Dollar", "NZD", "$"), 41 | #("Oman Rial", "OMR", "﷼"), #("Panama Balboa", "PAB", "B/."), 42 | #("Peru Sol", "PEN", "S/."), #("Philippines Peso", "PHP", "₱"), 43 | #("Pakistan Rupee", "PKR", "₨"), #("Poland Zloty", "PLN", "zł"), 44 | #("Paraguay Guarani", "PYG", "₲"), #("Qatar Riyal", "QAR", "﷼"), 45 | #("Romania Leu", "RON", "lei"), #("Serbia Dinar", "RSD", "Дин."), 46 | #("Russia Ruble", "RUB", "₽"), #("Saudi Arabia Riyal", "SAR", "﷼"), 47 | #("Solomon Islands Dollar", "SBD", "$"), #("Seychelles Rupee", "SCR", "₨"), 48 | #("Sweden Krona", "SEK", "kr"), #("Singapore Dollar", "SGD", "$"), 49 | #("Saint Helena Pound", "SHP", "£"), #("Somalia Shilling", "SOS", "S"), 50 | #("Suriname Dollar", "SRD", "$"), #("El Salvador Colon", "SVC", "$"), 51 | #("Syria Pound", "SYP", "£"), #("Thailand Baht", "THB", "฿"), 52 | #("Turkey Lira", "TRY", "₺"), #("Trinidad and Tobago Dollar", "TTD", "TT$"), 53 | #("Tuvalu Dollar", "TVD", "$"), #("Taiwan New Dollar", "TWD", "NT$"), 54 | #("Ukraine Hryvnia", "UAH", "₴"), #("United States Dollar", "USD", "$"), 55 | #("Uruguay Peso", "UYU", "$U"), #("Uzbekistan Som", "UZS", "лв"), 56 | #("Venezuela Bolívar", "VEF", "Bs"), #("Viet Nam Dong", "VND", "₫"), 57 | #("East Caribbean Dollar", "XCD", "$"), #("Yemen Rial", "YER", "﷼"), 58 | #("South Africa Rand", "ZAR", "R"), #("Zimbabwe Dollar", "ZWD", "Z$"), 59 | ] 60 | -------------------------------------------------------------------------------- /src/blah/locales/en/lorem.gleam: -------------------------------------------------------------------------------- 1 | pub const words = [ 2 | "a", "ab", "abbas", "abduco", "abeo", "abscido", "absconditus", "absens", 3 | "absorbeo", "absque", "abstergo", "absum", "abundans", "abutor", "accedo", 4 | "accendo", "acceptus", "accipio", "accommodo", "accusamus", "accusantium", 5 | "accusator", "acer", "acerbitas", "acervus", "acidus", "acies", "acquiro", 6 | "acsi", "ad", "adamo", "adaugeo", "addo", "adduco", "ademptio", "adeo", 7 | "adeptio", "adfectus", "adfero", "adficio", "adflicto", "adhaero", "adhuc", 8 | "adicio", "adimpleo", "adinventitias", "adipisci", "adipiscor", "adiuvo", 9 | "administratio", "admiratio", "admitto", "admoneo", "admoveo", "adnuo", 10 | "adopto", "adsidue", "adstringo", "adsuesco", "adsum", "adulatio", 11 | "adulescens", "adultus", "aduro", "advenio", "adversus", "advoco", 12 | "aedificium", "aeger", "aegre", "aegrotatio", "aegrus", "aeneus", "aequitas", 13 | "aequus", "aer", "aestas", "aestivus", "aestus", "aetas", "aeternus", "ager", 14 | "aggero", "aggredior", "agnitio", "agnosco", "ago", "ait", "aiunt", "alias", 15 | "alienus", "alii", "alioqui", "aliqua", "aliquam", "aliquid", "alius", 16 | "allatus", "alo", "alter", "altus", "alveus", "amaritudo", "ambitus", "ambulo", 17 | "amet", "amicitia", "amiculum", "amissio", "amita", "amitto", "amo", "amor", 18 | "amoveo", "amplexus", "amplitudo", "amplus", "ancilla", "angelus", "angulus", 19 | "angustus", "animadverto", "animi", "animus", "annus", "anser", "ante", 20 | "antea", "antepono", "antiquus", "aperiam", "aperio", "aperte", "apostolus", 21 | "apparatus", "appello", "appono", "appositus", "approbo", "apto", "aptus", 22 | "apud", "aqua", "ara", "aranea", "arbitro", "arbor", "arbustum", "arca", 23 | "arceo", "arcesso", "architecto", "arcus", "argentum", "argumentum", "arguo", 24 | "arma", "armarium", "armo", "aro", "ars", "articulus", "artificiose", "arto", 25 | "arx", "ascisco", "ascit", "asper", "asperiores", "aspernatur", "aspicio", 26 | "asporto", "assentator", "assumenda", "astrum", "at", "atavus", "ater", 27 | "atque", "atqui", "atrocitas", "atrox", "attero", "attollo", "attonbitus", 28 | "auctor", "auctus", "audacia", "audax", "audentia", "audeo", "audio", 29 | "auditor", "aufero", "aureus", "auris", "aurum", "aut", "autem", "autus", 30 | "auxilium", "avaritia", "avarus", "aveho", "averto", "avoco", "baiulus", 31 | "balbus", "barba", "bardus", "basium", "beatae", "beatus", "bellicus", 32 | "bellum", "bene", "beneficium", "benevolentia", "benigne", "bestia", "bibo", 33 | "bis", "blandior", "blanditiis", "bonus", "bos", "brevis", "cado", "caecus", 34 | "caelestis", "caelum", "calamitas", "calcar", "calco", "calculus", "callide", 35 | "campana", "candidus", "canis", "canonicus", "canto", "capillus", "capio", 36 | "capitulus", "capto", "caput", "carbo", "carcer", "careo", "caries", 37 | "cariosus", "caritas", "carmen", "carpo", "carus", "casso", "caste", "casus", 38 | "catena", "caterva", "cattus", "cauda", "causa", "caute", "caveo", "cavus", 39 | "cedo", "celebrer", "celer", "celo", "cena", "cenaculum", "ceno", "censura", 40 | "centum", "cerno", "cernuus", "certe", "certo", "certus", "cervus", "cetera", 41 | "charisma", "chirographum", "cibo", "cibus", "cicuta", "cilicium", 42 | "cimentarius", "ciminatio", "cinis", "circumvenio", "cito", "civis", "civitas", 43 | "clam", "clamo", "claro", "clarus", "claudeo", "claustrum", "clementia", 44 | "clibanus", "coadunatio", "coaegresco", "coepi", "coerceo", "cogito", 45 | "cognatus", "cognomen", "cogo", "cohaero", "cohibeo", "cohors", "colligo", 46 | "colloco", "collum", "colo", "color", "coma", "combibo", "comburo", "comedo", 47 | "comes", "cometes", "comis", "comitatus", "commemoro", "comminor", "commodi", 48 | "commodo", "communis", "comparo", "compello", "complectus", "compono", 49 | "comprehendo", "comptus", "conatus", "concedo", "concido", "conculco", 50 | "condico", "conduco", "confero", "confido", "conforto", "confugo", 51 | "congregatio", "conicio", "coniecto", "conitor", "coniuratio", "conor", 52 | "conqueror", "conscendo", "consectetur", "consequatur", "consequuntur", 53 | "conservo", "considero", "conspergo", "constans", "consuasor", "contabesco", 54 | "contego", "contigo", "contra", "conturbo", "conventus", "convoco", "copia", 55 | "copiose", "cornu", "corona", "corporis", "corpus", "correptius", "corrigo", 56 | "corroboro", "corrumpo", "corrupti", "coruscus", "cotidie", "crapula", "cras", 57 | "crastinus", "creator", "creber", "crebro", "credo", "creo", "creptio", 58 | "crepusculum", "cresco", "creta", "cribro", "crinis", "cruciamentum", 59 | "crudelis", "cruentus", "crur", "crustulum", "crux", "cubicularis", "cubitum", 60 | "cubo", "cui", "cuius", "culpa", "culpo", "cultellus", "cultura", "cum", 61 | "cumque", "cunabula", "cunae", "cunctatio", "cupiditas", "cupiditate", "cupio", 62 | "cuppedia", "cupressus", "cur", "cura", "curatio", "curia", "curiositas", 63 | "curis", "curo", "curriculum", "currus", "cursim", "curso", "cursus", "curto", 64 | "curtus", "curvo", "curvus", "custodia", "damnatio", "damno", "dapifer", 65 | "debeo", "debilito", "debitis", "decens", "decerno", "decet", "decimus", 66 | "decipio", "decor", "decretum", "decumbo", "dedecor", "dedico", "deduco", 67 | "defaeco", "defendo", "defero", "defessus", "defetiscor", "deficio", "defigo", 68 | "defleo", "defluo", "defungo", "degenero", "degero", "degusto", "deinde", 69 | "delectatio", "delectus", "delego", "deleniti", "deleo", "delibero", 70 | "delicate", "delinquo", "deludo", "demens", "demergo", "demitto", "demo", 71 | "demonstro", "demoror", "demulceo", "demum", "denego", "denique", "dens", 72 | "denuncio", "denuo", "deorsum", "depereo", "depono", "depopulo", "deporto", 73 | "depraedor", "deprecator", "deprimo", "depromo", "depulso", "deputo", 74 | "derelinquo", "derideo", "deripio", "deserunt", "desidero", "desino", 75 | "desipio", "desolo", "desparatus", "despecto", "despirmatio", "dicta", 76 | "dignissimos", "distinctio", "dolor", "dolore", "dolorem", "doloremque", 77 | "dolores", "doloribus", "dolorum", "ducimus", "ea", "eaque", "earum", "eius", 78 | "eligendi", "enim", "eos", "error", "esse", "est", "et", "eum", "eveniet", 79 | "ex", "excepturi", "exercitationem", "expedita", "explicabo", "facere", 80 | "facilis", "fuga", "fugiat", "fugit", "harum", "hic", "id", "illo", "illum", 81 | "impedit", "in", "incidunt", "infit", "inflammatio", "inventore", "ipsa", 82 | "ipsam", "ipsum", "iste", "itaque", "iure", "iusto", "labore", "laboriosam", 83 | "laborum", "laudantium", "libero", "magnam", "magni", "maiores", "maxime", 84 | "minima", "minus", "modi", "molestiae", "molestias", "mollitia", "nam", 85 | "natus", "necessitatibus", "nemo", "neque", "nesciunt", "nihil", "nisi", 86 | "nobis", "non", "nostrum", "nulla", "numquam", "occaecati", "ocer", "odio", 87 | "odit", "officia", "officiis", "omnis", "optio", "paens", "pariatur", "patior", 88 | "patria", "patrocinor", "patruus", "pauci", "paulatim", "pauper", "pax", 89 | "peccatus", "pecco", "pecto", "pectus", "pecunia", "pecus", "peior", "pel", 90 | "perferendis", "perspiciatis", "placeat", "porro", "possimus", "praesentium", 91 | "provident", "quae", "quaerat", "quam", "quas", "quasi", "qui", "quia", 92 | "quibusdam", "quidem", "quis", "quisquam", "quo", "quod", "quos", "ratione", 93 | "recusandae", "reiciendis", "rem", "repellat", "repellendus", "reprehenderit", 94 | "repudiandae", "rerum", "saepe", "sapiente", "sed", "sequi", "similique", 95 | "sint", "sit", "socius", "sodalitas", "sol", "soleo", "solio", "solitudo", 96 | "solium", "sollers", "sollicito", "solum", "solus", "soluta", "solutio", 97 | "solvo", "somniculosus", "somnus", "sonitus", "sono", "sophismata", "sopor", 98 | "sordeo", "sortitus", "spargo", "speciosus", "spectaculum", "speculum", 99 | "sperno", "spero", "spes", "spiculum", "spiritus", "spoliatio", "sponte", 100 | "stabilis", "statim", "statua", "stella", "stillicidium", "stipes", "stips", 101 | "sto", "strenuus", "strues", "studio", "stultus", "suadeo", "suasoria", "sub", 102 | "subito", "subiungo", "sublime", "subnecto", "subseco", "substantia", 103 | "subvenio", "succedo", "succurro", "sufficio", "suffoco", "suffragium", 104 | "suggero", "sui", "sulum", "sum", "summa", "summisse", "summopere", "sumo", 105 | "sumptus", "sunt", "supellex", "super", "suppellex", "supplanto", "suppono", 106 | "supra", "surculus", "surgo", "sursum", "suscipio", "suscipit", "suspendo", 107 | "sustineo", "suus", "synagoga", "tabella", "tabernus", "tabesco", "tabgo", 108 | "tabula", "taceo", "tactus", "taedium", "talio", "talis", "talus", "tam", 109 | "tamdiu", "tamen", "tametsi", "tamisium", "tamquam", "tandem", "tantillus", 110 | "tantum", "tardus", "tego", "temeritas", "temperantia", "templum", "tempora", 111 | "tempore", "temporibus", "temptatio", "tempus", "tenax", "tendo", "teneo", 112 | "tener", "tenetur", "tenuis", "tenus", "tepesco", "tepidus", "ter", "terebro", 113 | "teres", "terga", "tergeo", "tergiversatio", "tergo", "tergum", "termes", 114 | "terminatio", "tero", "terra", "terreo", "territo", "terror", "tersus", 115 | "tertius", "testimonium", "texo", "textilis", "textor", "textus", 116 | "thalassinus", "theatrum", "theca", "thema", "theologus", "thermae", 117 | "thesaurus", "thesis", "thorax", "thymbra", "thymum", "tibi", "timidus", 118 | "timor", "titulus", "tolero", "tollo", "tondeo", "tonsor", "torqueo", 119 | "torrens", "tot", "totam", "totidem", "toties", "totus", "tracto", "trado", 120 | "traho", "trans", "tredecim", "tremo", "trepide", "tres", "tribuo", 121 | "tricesimus", "triduana", "triginta", "tripudio", "tristis", "triumphus", 122 | "trucido", "truculenter", "tubineus", "tui", "tum", "tumultus", "tunc", 123 | "turba", "turbo", "turpe", "turpis", "tutamen", "tutis", "tyrannus", 124 | "uberrime", "ubi", "ulciscor", "ullam", "ullus", "ulterius", "ultio", "ultra", 125 | "umbra", "umerus", "umquam", "una", "unde", "undique", "universe", "unus", 126 | "urbanus", "urbs", "uredo", "usitas", "usque", "ustilo", "ustulo", "usus", 127 | "ut", "uter", "uterque", "utilis", "utique", "utor", "utpote", "utrimque", 128 | "utroque", "utrum", "uxor", "vaco", "vacuus", "vado", "vae", "valde", "valens", 129 | "valeo", "valetudo", "validus", "vallum", "vapulus", "varietas", "varius", 130 | "vehemens", "vel", "velit", "velociter", "velum", "velut", "venia", "veniam", 131 | "venio", "ventito", "ventosus", "ventus", "venustas", "ver", "verbera", 132 | "verbum", "vere", "verecundia", "vereor", "vergo", "veritas", "veritatis", 133 | "vero", "versus", "verto", "verumtamen", "verus", "vesco", "vesica", "vesper", 134 | "vespillo", "vester", "vestigium", "vestrum", "vetus", "via", "vicinus", 135 | "vicissitudo", "victoria", "victus", "videlicet", "video", "viduata", "viduo", 136 | "vigilo", "vigor", "vilicus", "vilis", "vilitas", "villa", "vinco", "vinculum", 137 | "vindico", "vinitor", "vinum", "vir", "virga", "virgo", "viridis", "viriliter", 138 | "virtus", "vis", "viscus", "vita", "vitae", "vitiosus", "vitium", "vito", 139 | "vivo", "vix", "vobis", "vociferor", "voco", "volaticus", "volo", "volubilis", 140 | "voluntarius", "volup", "voluptas", "voluptate", "voluptatem", "voluptates", 141 | "voluptatibus", "voluptatum", "volutabrum", "volva", "vomer", "vomica", 142 | "vomito", "vorago", "vorax", "voro", "vos", "votum", "voveo", "vox", 143 | "vulariter", "vulgaris", "vulgivagus", "vulgo", "vulgus", "vulnero", "vulnus", 144 | "vulpes", "vulticulus", "vultuosus", "xiphias", 145 | ] 146 | -------------------------------------------------------------------------------- /src/blah/locales/fa/address.gleam: -------------------------------------------------------------------------------- 1 | pub const default_country = "ایران" 2 | 3 | pub const countries = [ 4 | "چین", "هند", "ایالات متحده آمریکا", "اندونزی", "برزیل", "بنگلادش", "روسیه", 5 | "ژاپن", "پاکستان", "ویتنام", "نیجریه", "مکزیک", "اتیوپی", "آلمان", "فیلیپین", 6 | "تایلند", "جمهوری دموکراتیک کنگو", "میانمار", "بریتانیا", "فرانسه", "ترکیه", 7 | "ایران", "مصر", "کره جنوبی", "ایتالیا", "تانزانیا", "کلمبیا", "اسپانیا", 8 | "اوکراین", "کنیا", "کانادا", "آفریقای جنوبی", "لهستان", "اوگاندا", "آرژانتین", 9 | "ازبکستان", "پرو", "نپال", "ونزوئلا", "مالزی", "کره شمالی", "استرالیا", "غنا", 10 | "سودان", "مراکش", "تایوان", "الجزایر", "موزامبیک", "ماداگاسکار", "رومانی", 11 | "قزاقستان", "آنگولا", "عراق", "سریلانکا", "کامرون", "عربستان سعودی", "شیلی", 12 | "هلند", "ساحل عاج", "کامبوج", "افغانستان", "یمن", "اکوادور", "بورکینافاسو", 13 | "زامبیا", "سنگال", "مالاوی", "گینه", "پرتغال", "جمهوری چک", "کوبا", "بلژیک", 14 | "سوئد", "سوریه", "بلاروس", "سوئیس", "بولیوی", "یونان", "جمهوری دومینیکن", 15 | "هائیتی", "نیجر", "جمهوری آذربایجان", "امارات متحده عربی", "گواتمالا", 16 | "رواندا", "چاد", "مجارستان", "بوروندی", "پاپوآ گینه نو", "تونس", "زیمبابوه", 17 | "هنگ کنگ", "اتریش", "بنین", "هندوراس", "اسرائیل", "سومالی", "سنگاپور", "لائوس", 18 | "مالی", "پاراگوئه", "نیکاراگوئه", "اریتره", "جمهوری کنگو", "دانمارک", 19 | "السالوادور", "اسلواکی", "نروژ", "فنلاند", "توگو", "بلغارستان", "نیوزیلند", 20 | "کویت", "قرقیزستان", "ترکمنستان", "کاستاریکا", "تاجیکستان", "سیرالئون", 21 | "جمهوری ایرلند", "جمهوری آفریقای مرکزی", "گرجستان", "اردن", "کرواسی", 22 | "صربستان", "اروگوئه", "لیبی", "پاناما", "بوسنی و هرزگوین", "لبنان", "لیتوانی", 23 | "قطر", "ارمنستان", "لیبریا", "موریتانی", "بوتسوانا", "پورتوریکو", "جامائیکا", 24 | "مولداوی", "آلبانی", "مغولستان", "اردن", "لتونی", "عمان", "جمهوری مقدونیه", 25 | "اسلوونی", "نامیبیا", "لسوتو", "کوزوو", "گامبیا", "بحرین", "استونی", "موریس", 26 | "گینه بیسائو", "گابن", "ترینیداد و توباگو", "قبرس", "اسواتینی", "تیمور شرقی", 27 | "ماکائو", "نوار غزه", "پادشاهی بوتان", "فیجی", "گویان", "جیبوتی", "مونتهنگرو", 28 | "کومور", "لوکزامبورگ", "برونئی", "جزایر سلیمان", "باهاما", "کیپ ورد", 29 | "گینه استوایی", "مالت", "ایسلند", "سورینام", "مالدیو", "صحرای غربی", 30 | "باربادوس", "بلیز", "پلینزی فرانسه", "وانواتو", "کالدونیای جدید", "سنت لوسیا", 31 | "کوراسائو", "گوآم", "گرنادا", "سنت وینسنت و گرنادینها", "جرسی", 32 | "سائوتومه و پرنسیپ", "موناکو", "آروبا", "جزایر ویرجین ایالات متحده", "ساموآ", 33 | "جزیره من", "تونگا", "سیشل", "جزایر کیمن", "جزایر ماریانای شمالی", "برمودا", 34 | "آندورا", "لیختناشتاین", "جزایر فارو", "گرنزی", "آنتیگوا و باربودا", "گرینلند", 35 | "دومینیکا", "سنت مارتین", "سان مارینو", "سنت کیتس و نویس", "ساموای آمریکا", 36 | "سنت مارتین", "ایالات فدرال میکرونزی", "جزایر ویرجین انگلستان", "جبل طارق", 37 | "جزایر مارشال", "پالائو", "کیریباتی", "جزایر کوک", "آنگویلا", "جزایر فالکلند", 38 | "جزایر تورکس و کایکوس", "مونتسرات", "تووالو", "سنت پیر و ماژلان", 39 | "والیس و فوتونا", "واتیکان", "سینت هلینا", "سوالبارد", "جزیره نورفولک", 40 | "نیووی", "توکلائو", "جزایر پیتکرن", 41 | ] 42 | 43 | pub const provinces = [ 44 | "آذربایجان شرقی", "آذربایجان غربی", "اردبیل", "اصفهان", "البرز", "ایلام", 45 | "بوشهر", "تهران", "چهارمحال و بختیاری", "خراسان جنوبی", "خراسان رضوی", 46 | "خراسان شمالی", "خوزستان", "زنجان", "سمنان", "سیستان و بلوچستان", "فارس", 47 | "قزوین", "قم", "کردستان", "کرمان", "کرمانشاه", "کهگیلویه و بویراحمد", "گلستان", 48 | "گیلان", "لرستان", "مازندران", "مرکزی", "هرمزگان", "همدان", "یزد", 49 | ] 50 | 51 | pub const cities = [ 52 | "تهران", "مشهد", "اصفهان", "کرج", "تبریز", "شیراز", "اهواز", "قم", "کرمانشاه", 53 | "ارومیه", "رشت", "زاهدان", "کرمان", "اراک", "همدان", "یزد", "اردبیل", 54 | "بندرعباس", "اسلام‌شهر", "زنجان", "قزوین", "سنندج", "خرم‌آباد", "گرگان", "ساری", 55 | "ملارد", "قدس", "کاشان", "گلستان", "شهریار", "دزفول", "خمینی‌شهر", "بروجرد", 56 | "نیشابور", "سبزوار", "نجف‌آباد", "آمل", "بابل", "ورامین", "آبادان", "پاکدشت", 57 | "خوی", "ساوه", "بجنورد", "قائم‌شهر", "بوشهر", "قرچک", "سیرجان", "بیرجند", 58 | "ایلام", 59 | ] 60 | 61 | pub const street_prefixes = ["خیابان", "بلوار"] 62 | 63 | pub const alley_prefixes = ["کوچه", "بن‌بست"] 64 | 65 | pub const streets = [ 66 | "آزادی", "آفریقا", "آذربایجان", "حقانی", "امیرکبیر", "اجاره دار", 67 | "اقبال لاهوری", "ابوذر", "قدس", "سباری", "فاطمی", "مالک اشتر", "نیایش", 68 | "دیباجی", "واعظی", "دستغیب", "موحد دانش", "کارگر شمالی", "استاد قریب", 69 | "یادگار امام", "دکتر چمران", "رسالت", "سمیه", "شهید مطهری", "هویزه", "دماوند", 70 | "توحید", "ستارخان", "کارون", "استادمعین", "رامین", "اندرزگو", 71 | ] 72 | 73 | pub const directions = [ 74 | "شمال", "شرق", "جنوب", "غرب", "شمال شرق", "شمال غرب", "جنوب شرق", "جنوب غرب", 75 | ] 76 | -------------------------------------------------------------------------------- /src/blah/locales/fa/name.gleam: -------------------------------------------------------------------------------- 1 | pub const female_first_names = [ 2 | "مریم", "نازنین", "غزاله", "محدثه", "بهناز", "آزاده", "آرام", "زینب", "کیمیا", 3 | "سوسن", "لاله", "آنا", "آناهیتا", "آنیتا", "آرمیتا", "آتوسا", "آیدا", "بنفشه", 4 | "بهار", "بیتا", "پارمیس", "پریناز", "پریسا", "پرنیان", "سارا", "پگاه", 5 | "پانته‌آ", "ترانه", "چکاوک", "دریا", "درسا", "فرشته", "ملیسا", "ملیکا", "رویا", 6 | "زیبا", "یاسمن", "سپیده", "سمیرا", "سیما", "شادی", "هانیه", "شهرزاد", "شکوه", 7 | "سمیه", "شهلا", "شیدا", "شیوا", "فرانک", "فرزانه", "فرناز", "فریبا", "فریماه", 8 | "شکیبا", "کتایون", "گلاره", "گیتی", "گیسو", "سحر", "مروارید", "مهرناز", "مهسا", 9 | "مینا", "مینو", "مهدیه", "مهوش", "میترا", "نگین", "نگار", "نیلوفر", "رز", 10 | "هلیا", "هستی", 11 | ] 12 | 13 | pub const male_first_names = [ 14 | "علی", "حسن", "محمد", "مهدی", "مسعود", "دانیال", "سجاد", "امیر", "رضا", 15 | "مازیار", "مهیار", "محمدرضا", "فرهاد", "افشین", "مهرداد", "مهراد", "کیانوش", 16 | "کیوان", "کامران", "مهران", "سروش", "سامان", "هادی", "همایون", "ایمان", 17 | "رامین", "رامتین", "امین", "سپهر", "سهیل", "عرفان", "جواد", "نیما", "پرهام", 18 | "میلاد", "شایان", "شهاب", "کاوه", "بهمن", "سیاوش", "سعید", "امید", "حسین", 19 | "سینا", "مهدیار", "صدرا", "عباس", "امیرسینا", "نوید", "پیمان", "پژمان", "مجید", 20 | "حمید", "وحید", "علیرضا", "آیدین", "آرمان", "امیرحسین", "آرین", "کسرا", 21 | "جمشید", "فریبرز", "قاسم", "صمد", "حامد", "فرزاد", "فریدون", "فربد", "فرگام", 22 | "یاسین", "آرش", "آرمین", "شهروز", 23 | ] 24 | 25 | pub const first_names = [ 26 | "آبان‌دخت", "آبتین", "آتوسا", "آفر", "آفره‌دخت", "آذرنوش‌", "آذین", "آراه", 27 | "آرزو", "آرش", "آرتین", "آرتام", "آرتمن", "آرشام", "آرمان", "آرمین", "آرمیتا", 28 | "آریافر", "آریا", "آریامهر", "آرین", "آزاده", "آزرم", "آزرمدخت", "آزیتا", 29 | "آناهیتا", "آونگ", "آهو", "آیدا", "اختر", "ارد", "اردشیر", "اردوان", "ارژن", 30 | "ارژنگ", "ارسلان", "ارغوان", "ارمغان", "ارنواز", "اروانه", "استر", "اسفندیار", 31 | "اشکان", "اشکبوس", "افسانه", "افسون", "افشین", "امید", "آنوشا", "انوشروان", 32 | "اورنگ", "اوژن", "اوستا", "اهورا", "ایاز", "ایران", "ایراندخت", "ایرج", 33 | "ایزدیار", "بابک", "باپوک", "باربد", "بارمان", "بامداد", "بامشاد", "بانو", 34 | "بختیار", "برانوش", "بردیا", "برزو", "برزویه", "برزین", "برمک", "بزرگمهر", 35 | "بنفشه", "بوژان", "بویان", "بهار", "بهارک", "بهاره", "بهتاش", "بهداد", "بهرام", 36 | "بهدیس", "بهرخ", "بهرنگ", "بهروز", "بهزاد", "بهشاد", "بهمن", "بهناز", "بهنام", 37 | "بهنود", "بهنوش", "بیتا", "بیژن", "پارسا", "پاکان", "پاکتن", "پاکدخت", 38 | "پانته‌آ", "پدرام", "پرتو", "پرشنگ", "پرتو", "پرستو", "پرویز", "پردیس", "پرهام", 39 | "پژمان", "پژوا", "پرنیا", "پشنگ", "پروانه", "پروین", "پری", "پریچهر", "پریدخت", 40 | "پریسا", "پرناز", "پریوش", "پریا", "پوپک", "پوران", "پوراندخت", "پوریا", 41 | "پولاد", "پویا", "پونه", "پیام", "پیروز", "پیمان", "تابان", "تاباندخت", "تاجی", 42 | "تارا", "تاویار", "ترانه", "تناز", "توران", "توراندخت", "تورج", "تورتک", 43 | "توفان", "توژال", "تیر داد", "تینا", "تینو", "جابان", "جامین", "جاوید", 44 | "جریره", "جمشید", "جوان", "جویا", "جهان", "جهانبخت", "جهانبخش", "جهاندار", 45 | "جهانگیر", "جهان بانو", "جهاندخت", "جهان ناز", "جیران", "چابک", "چالاک", 46 | "چاوش", "چوبین", "چهرزاد", "خاوردخت", "خداداد", "خدایار", "خرم", "خرمدخت", 47 | "خسرو", "خشایار", "خورشید", "دادمهر", "دارا", "داراب", "داریا", "داریوش", 48 | "دانوش", "داور‌", "دایان", "دریا", "دل آرا", "دل آویز", "دلارام", "دل انگیز", 49 | "دلبر", "دلبند", "دلربا", "دلشاد", "دلکش", "دلناز", "دلنواز", "دورشاسب", 50 | "دنیا", "دیااکو", "دیانوش", "دیبا", "دیبا دخت", "رابو", "رابین", "رادبانو", 51 | "رادمان", "رازبان", "راژانه", "راسا", "رامتین", "رامش", "رامشگر", "رامونا", 52 | "رامیار", "رامیلا", "رامین", "راویار", "رژینا", "رخپاک", "رخسار", "رخشانه", 53 | "رخشنده", "رزمیار", "رستم", "رکسانا", "روبینا", "رودابه", "روزبه", "روشنک", 54 | "روناک", "رهام", "رهی", "ریبار", "راسپینا", "زادبخت", "زاد به", "زاد چهر", 55 | "زاد فر", "زال", "زادماسب", "زاوا", "زردشت", "زرنگار", "زری", "زرین", "زرینه", 56 | "زمانه", "زونا", "زیبا", "زیبار", "زیما", "زینو", "ژاله", "ژالان", "ژیار", 57 | "ژینا", "ژیوار", "سارا", "سارک", "سارنگ", "ساره", "ساسان", "ساغر", "سام", 58 | "سامان", "سانا", "ساناز", "سانیار", "ساویز", "ساهی", "ساینا", "سایه", "سپنتا", 59 | "سپند", "سپهر", "سپهرداد", "سپیدار", "سپید بانو", "سپیده", "ستاره", "ستی", 60 | "سرافراز", "سرور", "سروش", "سرور", "سوبا", "سوبار", "سنبله", "سودابه", "سوری", 61 | "سورن", "سورنا", "سوزان", "سوزه", "سوسن", "سومار", "سولان", "سولماز", "سوگند", 62 | "سهراب", "سهره", "سهند", "سیامک", "سیاوش", "سیبوبه", "سیما", "سیمدخت", "سینا", 63 | "سیمین", "سیمین دخت", "شاپرک", "شادی", "شادمهر", "شاران", "شاهپور", "شاهدخت", 64 | "شاهرخ", "شاهین", "شاهیندخت", "شایسته", "شباهنگ", "شب بو", "شبدیز", "شبنم", 65 | "شراره", "شرمین", "شروین", "شکوفه", "شکفته", "شمشاد", "شمین", "شوان", "شمیلا", 66 | "شورانگیز", "شوری", "شهاب", "شهبار", "شهباز", "شهبال", "شهپر", "شهداد", 67 | "شهرآرا", "شهرام", "شهربانو", "شهرزاد", "شهرناز", "شهرنوش", "شهره", "شهریار", 68 | "شهرزاد", "شهلا", "شهنواز", "شهین", "شیبا", "شیدا", "شیده", "شیردل", "شیرزاد", 69 | "شیرنگ", "شیرو", "شیرین دخت", "شیما", "شینا", "شیرین", "شیوا", "طوس", "طوطی", 70 | "طهماسب", "طهمورث", "غوغا", "غنچه", "فتانه", "فدا", "فراز", "فرامرز", "فرانک", 71 | "فراهان", "فربد", "فربغ", "فرجاد", "فرخ", "فرخ پی", "فرخ‌داد", "فرخ‌رو", 72 | "فرخ‌زاد", "فرخ‌لقا", "فرخ‌مهر", "فرداد", "فردیس", "فرین", "فرزاد", "فرزام", 73 | "فرزان", "فرزانه", "فرزین", "فرشاد", "فرشته", "فرشید", "فرمان", "فرناز", 74 | "فرنگیس", "فرنود", "فرنوش", "فرنیا", "فروتن", "فرود", "فروز", "فروزان", 75 | "فروزش", "فروزنده", "فروغ", "فرهاد", "فرهنگ", "فرهود", "فربار", "فریبا", 76 | "فرید", "فریدخت", "فریدون", "فریمان", "فریناز", "فرینوش", "فریوش", "فیروز", 77 | "فیروزه", "قابوس", "قباد", "قدسی", "کابان", "کابوک", "کارا", "کارو", "کاراکو", 78 | "کامبخت", "کامبخش", "کامبیز", "کامجو", "کامدین", "کامران", "کامراوا", "کامک", 79 | "کامنوش", "کامیار", "کانیار", "کاووس", "کاوه", "کتایون", "کرشمه", "کسری", 80 | "کلاله", "کمبوجیه", "کوشا", "کهبد", "کهرام", "کهزاد", "کیارش", "کیان", "کیانا", 81 | "کیانچهر", "کیاندخت", "کیانوش", "کیاوش", "کیخسرو", "کیقباد", "کیکاووس", 82 | "کیوان", "کیوانٰدخت", "کیومرث", "کیهان", "کیاندخت", "کیهانه", "گرد‌آفرید", 83 | "گردان", "گرشا", "گرشاسب", "گرشین", "گرگین", "گزل", "گشتاسب", "گشسب بانو", 84 | "گل", "گل آذین", "گل آرا‌", "گلاره", "گل افروز", "گلاله", "گل اندام", "گلاویز", 85 | "گلباد", "گلبار", "گلبام", "گلبان", "گلبانو", "گلبرگ", "گلبو", "گلبهار", 86 | "گلبیز", "گلپاره", "گلپر", "گلپری", "گلپوش", "گل پونه", "گلچین", "گلدخت", 87 | "گلدیس", "گلربا", "گلرخ", "گلرنگ", "گلرو", "گلشن", "گلریز", "گلزاد", "گلزار", 88 | "گلسا", "گلشید", "گلنار", "گلناز", "گلنسا", "گلنواز", "گلنوش", "گلی", "گودرز", 89 | "گوماتو", "گهر چهر", "گوهر ناز", "گیتی", "گیسو", "گیلدا", "گیو", "لادن", 90 | "لاله", "لاله رخ", "لاله دخت", "لبخند", "لقاء", "لومانا", "لهراسب", "مارال", 91 | "ماری", "مازیار", "ماکان", "مامک", "مانا", "ماندانا", "مانوش", "مانی", "مانیا", 92 | "ماهان", "ماهاندخت", "ماه برزین", "ماه جهان", "ماهچهر", "ماهدخت", "ماهور", 93 | "ماهرخ", "ماهزاد", "مردآویز", "مرداس", "مرزبان", "مرمر", "مریم", "مزدک", 94 | "مژده", "مژگان", "مستان", "مستانه", "مشکاندخت", "مشکناز", "مشکین دخت", "منیژه", 95 | "منوچهر", "مهبانو", "مهبد", "مه داد", "مهتاب", "مهدیس", "مه‌جبین", "مه‌دخت", 96 | "مهرآذر", "مهرآرا", "مهر آسا", "مهرآفاق", "مهر افرین", "مهرآب", "مهرداد", 97 | "مهرافزون", "مهرام", "مهران", "مهراندخت", "مهراندیش", "مهرانفر", "مهرانگیز", 98 | "مهرداد", "مهر دخت", "مهرزاده", "مهرناز", "مهرنوش", "مهرنکار", "مهرنیا", 99 | "مهروز", "مهری", "مهریار", "مهسا", "مهستی", "مه سیما", "مهشاد", "مهشید", 100 | "مهنام", "مهناز", "مهنوش", "مهوش", "مهیار", "مهین", "مهین دخت", "میترا", 101 | "میخک", "مینا", "مینا دخت", "مینو", "مینودخت", "مینو فر", "نادر", "ناز آفرین", 102 | "نازبانو", "نازپرور", "نازچهر", "نازفر", "نازلی", "نازی", "نازیدخت", "نامور", 103 | "ناهید", "ندا", "نرسی", "نرگس", "نرمک", "نرمین", "نریمان", "نسترن", "نسرین", 104 | "نسرین‌دخت", "نسرین نوش", "نکیسا", "نگار", "نگاره", "نگارین", "نگین", "نوا", 105 | "نوش", "نوش آذر", "نوش آور", "نوشا", "نوش آفرین", "نوشدخت", "نوشروان", "نوشفر", 106 | "نوشناز", "نوشین", "نوید", "نوین", "نوین‌دخت", "نیشا", "نیک بین", "نیک‌پی", 107 | "نیک‌چهر", "نیک‌خواه", "نیکداد", "نیکدخت", "نیکدل", "نیکزاد", "نیلوفر", "نیما", 108 | "وامق", "ورجاوند", "وریا", "وشمگیر", "وهرز", "وهسودان", "ویدا", "ویس", 109 | "ویشتاسب", "ویگن", "هژیر", "هخامنش", "هیربد", "هرمز", "همایون", "هما", 110 | "همادخت", "همدم", "همراز", "همراه", "هنگامه", "هوتن", "هور", "هورتاش", 111 | "هورچهر", "هورداد", "هوردخت", "هورزاد", "هورمند", "هوروش", "هوشنگ", "هوشیار", 112 | "هومان", "هومن", "هونام", "هویدا", "هیتاسب", "هیرمند", "هیما", "هیوا", 113 | "یادگار", "یاسمن", "یاشار", "یاور", "یزدان", "یگانه", "یوشیتا", 114 | ] 115 | 116 | pub const last_names = [ 117 | "عارف", "عاشوری", "عالی", "عبادی", "عبدالکریمی", "عبدالملکی", "عراقی", "عزیزی", 118 | "عصار", "عقیلی", "علم", "علی‌عسگری", "علی‌آبادی", "علیا", "علی‌پور", "علی‌زمانی", 119 | "عنایت", "غضنفری", "غنی", "فارسی", "فاطمی", "فانی", "فتاحی", "فرامرزی", "فرج", 120 | "فرشیدورد", "فرمانفرمائیان", "فروتن", "فرهنگ", "فریاد", "فنایی", "فنی‌زاده", 121 | "فولادوند", "فهمیده", "قاضی", "قانعی", "قانونی", "قمیشی", "قنبری", "قهرمان", 122 | "قهرمانی", "قهرمانیان", "قهستانی", "کاشی", "کاکاوند", "کامکار", "کاملی", 123 | "کاویانی", "کدیور", "کردبچه", "کرمانی", "کریمی", "کلباسی", "کمالی", "کوشکی", 124 | "کهنمویی", "کیان", "کیانی", "کیمیایی", "گل محمدی", "گلپایگانی", "گنجی", 125 | "لاجوردی", "لاچینی", "لاهوتی", "لنکرانی", "لوکس", "مجاهد", "مجتبایی", "مجتبوی", 126 | "مجتهد شبستری", "مجتهدی", "مجرد", "محجوب", "محجوبی", "محدثی", "محمدرضایی", 127 | "محمدی", "مددی", "مرادخانی", "مرتضوی", "مستوفی", "مشا", "مصاحب", "مصباح", 128 | "مصباح‌زاده", "مطهری", "مظفر", "معارف", "معروف", "معین", "مفتاح", "مفتح", 129 | "مقدم", "ملایری", "ملک", "ملکیان", "منوچهری", "موحد", "موسوی", "موسویان", 130 | "مهاجرانی", "مهدی‌پور", "میرباقری", "میردامادی", "میرزاده", "میرسپاسی", 131 | "میزبانی", "ناظری", "نامور", "نجفی", "ندوشن", "نراقی", "نعمت‌زاده", "نقدی", 132 | "نقیب‌زاده", "نواب", "نوبخت", "نوبختی", "نهاوندی", "نیشابوری", "نیلوفری", 133 | "واثقی", "واعظ", "واعظ‌زاده", "واعظی", "وکیلی", "هاشمی", "هاشمی رفسنجانی", 134 | "هاشمیان", "هامون", "هدایت", "هراتی", "هروی", "همایون", "همت", "همدانی", 135 | "هوشیار", "هومن", "یاحقی", "یادگار", "یثربی", "یلدا", "جوانی", "نوروزی", 136 | "ژیان", "گرمابی", "فردوس", 137 | ] 138 | -------------------------------------------------------------------------------- /src/blah/locales/fa/word.gleam: -------------------------------------------------------------------------------- 1 | pub const verbs = [ 2 | "آرامیدن", "آزماییدن", "آشامیدن", "آفریدن", "آمدن", "ارزیدن", "باختن", 3 | "باریدن", "بافتن", "بوسیدن", "تاختن", "ترسیدن", "تنیدن", "جنگیدن", "جهیدن", 4 | "خریدن", "خزیدن", "خمیدن", "خواندن", "دریدن", "دزدیدن", "دمیدن", "رزمیدن", 5 | "رسیدن", "رمیدن", "ریختن", "ریدن", "زیستن", "سریدن", "سوختن", "لمیدن", "ماندن", 6 | "مردن", "نشاندن", "نمایاندن", "وزیدن", "پریدن", "پوسیدن", "چریدن", "چسیدن", 7 | "کشتن", "گرفتن", "گشتن", "گفتن", "یافتن", 8 | ] 9 | 10 | pub const prepositions = [ 11 | "از", "اندر", "با", "بالایِ", "بدون", "بر", "برای", "به", "بهر", "بی", "بیرون", 12 | "تا", "تویِ", "جز", "در", "درباره", "درون", "را", "روی", "زی", "زیر", "سوایِ", 13 | "غیر", "مانند", "مثل", "مقابل", "مگر", "همراه", "پایین", "پس", "پشت", "پهلویِ", 14 | "پیش", "چو", "چون", "کنار", 15 | ] 16 | 17 | pub const nouns = [ 18 | "آدم", "آزادی", "آسمان", "ابر", "ارزش", "اسب", "بار", "باز", "بام", "بانو", 19 | "بنا", "تار", "تسمه", "تنه", "ثانیه", "ثروت", "ثنا", "جانی", "جراح", "جراحت", 20 | "جریمه", "جنازه", "حراج", "حمام", "حنا", "خار", "خاشاک", "خانه", "خرما", "خس", 21 | "خنده", "دانه", "دما", "دندان", "دنده", "ذات", "ذهن", "راز", "راننده", "رزم", 22 | "رنده", "زر", "زرشک", "زمان", "زمین", "زن", "زندگی", "سر", "سرب", "سرسره", 23 | "سرما", "سرمه", "سرنیزه", "سقف", "شانه", "شراب", "شرط", "شفق", "شیر", "صحرا", 24 | "صفر", "ضربان", "طعم", "طعمه", "طلا", "ظرف", "ظلم", "ظهر", "عرفان", "عشق", 25 | "عصا", "عقاب", "علم", "عمو", "عید", "عینک", "غزل", "غم", "غنا", "غنچه", 26 | "غنیمت", "فانوس", "فردا", "فرزند", "فرشته", "فک", "فیروزه", "قاب", "قایق", 27 | "قدم", "قفس", "قلب", "قناری", "قند", "لاستیک", "لامپ", "لانه", "لاک", "لاک‌پشت", 28 | "لب", "لباس", "لپ", "لک‌لک", "لیمو", "لیوان", "مداد", "مرد", "مژده", "میز", 29 | "مین", "نان", "ندا", "نرده", "نسترن", "نیم", "هشت", "هوس", "هیمه", "وام", 30 | "وانت", "وردنه", "پاره", "پارو", "پایه", "پسته", "پشته", "پشم", "پنبه", "پنیر", 31 | "پویش", "چرا", "چشم", "چشمه", "چهره", "ژاله", "کار", "کاه", "کران", "کلاه", 32 | "کلبه", "کمر", "کنده", "گاری", "گاز", "گاو", "گرداب", "گردان", "گردباد", 33 | "گردن", "گرما", "گز", "گندم", "گور", "گوزن", "گوسفند", "گوش", "گوشت", "گونی", 34 | "یادگار", "یار", "یاقوت", "یاور", "یزد", "یورش", "یوز", "یونجه", 35 | ] 36 | 37 | pub const interjections = ["آی", "ا", "ای", "های", "هی", "وای"] 38 | 39 | pub const conjunctions = [ 40 | "اما", "اگر", "اگرچه", "باری", "بلکه", "تا", "خواه", "زیرا", "هم", "و", "ولی", 41 | "پس", "چه", "چون", "که", "یا", 42 | ] 43 | 44 | pub const adverbs = [ 45 | "آهسته", "افتان و خیزان", "البته", "اندک‌اندک", "اینجا", "بسیار", "خندان", 46 | "دوان‌دوان", "شاید", "هرگز", "همیشه", "هنوز", "کم‌کم", "گریان", 47 | ] 48 | 49 | pub const adjectives = [ 50 | "آبی", "آتشین", "آرام", "آزاد", "آس و پاس", "آسمانی", "آسیمه", "آشکار", 51 | "آهسته", "آواره", "ارزان", "بارانی", "باریک", "باز", "باستانی", "بد", "بسته", 52 | "بسیار", "بنبه‌ای", "بنفش", "بیدار", "بیمار", "جانی", "جهانی", "حنایی", "خاکی", 53 | "خسته", "خمیده", "خنده‌دار", "خوار", "خوب", "دچار", "رسیده", "رمیده", "رها", 54 | "زرد", "زرشکی", "زمینی", "زنده", "زیاد", "سبز", "سر", "سرخابی", "سرد", 55 | "سرزنده", "سرمه‌ای", "سفید", "سیاه", "شاد", "شرابی", "شفاف", "شفقی", "شیری", 56 | "صحرایی", "صورتی", "طلایی", "ظالم", "عالی", "عریان", "عسلی", "عصبانی", "غمگین", 57 | "غنایی", "غنی", "فیروزه‌ای", "قرمز", "قهوه‌ای", "قوی", "لاجوردی", "لیز", "ماشی", 58 | "مخدوش", "مست", "مفید", "نادان", "نارنجی", "نخودی", "نیلی", "هرز", "هلویی", 59 | "وامانده", "پاره", "پست", "پسته‌ای", "پشمی", "پیاده", "پیروز", "چرمی", "کاری", 60 | "کثیف", "کهربایی", "گران", "گرفتار", "گرم", "گندمی", "گیاهی", "یاور", "یشمی", 61 | ] 62 | -------------------------------------------------------------------------------- /src/blah/locales/fr/address.gleam: -------------------------------------------------------------------------------- 1 | pub const default_country = "France" 2 | 3 | pub const countries = [ 4 | "Afghanistan", "Albanie", "Algérie", "Samoa américaines", "Andorre", "Angola", 5 | "Anguilla", "Antarctique (territoire situé au sud du 60e parallèle)", 6 | "Antigua-et-Barbuda", "Argentine", "Arménie", "Aruba", "Australie", "Autriche", 7 | "Azerbaïdjan", "Bahamas", "Bahreïn", "Bangladesh", "Barbade", "Bélarus", 8 | "Belgique", "Belize", "Bénin", "Bermudes", "Bhoutan", "Bolivie", 9 | "Bosnie-Herzégovine", "Botswana", "Île Bouvet (Bouvetoya)", "Brésil", 10 | "Territoire britannique de l'océan Indien (archipel des Chagos)", 11 | "Brunei Darussalam", "Bulgarie", "Burkina Faso", "Burundi", "Cambodge", 12 | "Cameroun", "Canada", "Cap-Vert", "Îles Cayman", "République centrafricaine", 13 | "Tchad", "Chili", "Chine", "île Christmas", "îles Cocos (Keeling)", "Colombie", 14 | "Comores", "Congo", "Îles Cook", "Costa Rica", "Côte d'Ivoire", "Croatie", 15 | "Cuba", "Chypre", "République tchèque", 16 | "République populaire démocratique de Corée", "Danemark", "Djibouti", 17 | "Dominique", "République dominicaine", "Équateur", "Égypte", "El Salvador", 18 | "Guinée équatoriale", "Érythrée", "Estonie", "Éthiopie", 19 | "Îles Falkland (Malvinas)", "Îles Féroé", "Fidji", "Finlande", "France", 20 | "Guyane française", "Polynésie française", "Terres australes françaises", 21 | "Gabon", "Gambie", "Géorgie", "Allemagne", "Ghana", "Gibraltar", "Grèce", 22 | "Groenland", "Grenade", "Guadeloupe", "Guam", "Guatemala", "Guernesey", 23 | "Guinée", "Guinée-Bissau", "Guyane", "Haïti", 24 | "Heard Island et McDonald Islands", "Saint-Siège (État de la Cité du Vatican)", 25 | "Honduras", "Hong Kong", "Hungary", "Iceland", "Hongrie", "Islande", "Inde", 26 | "Indonésie", "Iran", "Irak", "Irlande", "Île de Man", "Israël", "Italie", 27 | "Jamaïque", "Japon", "Jersey", "Jordanie", "Kazakhstan", "Kenya", "Kiribati", 28 | "Koweït", "République kirghize", "République démocratique populaire lao", 29 | "Lettonie", "Liban", "Lesotho", "Liberia", "Jamahiriya arabe libyenne", 30 | "Liechtenstein", "Lituanie", "Luxembourg", "Macao", "Macédoine", "Madagascar", 31 | "Malawi", "Malaisie", "Maldives", "Mali", "Malte", "Îles Marshall", 32 | "Martinique", "Mauritanie", "Maurice", "Mayotte", "Mexique", "Micronésie", 33 | "Moldavie", "Monaco", "Mongolie", "Monténégro", "Montserrat", "Maroc", 34 | "Mozambique", "Myanmar", "Namibie", "Nauru", "Népal", "Antilles néerlandaises", 35 | "Pays-Bas", "Nouvelle-Calédonie", "Nouvelle-Zélande", "Nicaragua", "Niger", 36 | "Nigeria", "Niue", "Île Norfolk", "Îles Mariannes du Nord", "Norvège", "Oman", 37 | "Pakistan", "Palau", "Territoire palestinien", "Panama", 38 | "Papouasie-Nouvelle-Guinée", "Paraguay", "Pérou", "Philippines", 39 | "Îles Pitcairn", "Pologne", "Portugal", "Puerto Rico", "Qatar", 40 | "République de Corée", "Réunion", "Roumanie", "Fédération de Russie", "Rwanda", 41 | "Saint-Barthélemy", "Sainte-Hélène", "Saint-Kitts-et-Nevis", "Sainte-Lucie", 42 | "Saint-Martin", "Saint Pierre et Miquelon", "Saint Vincent et les Grenadines", 43 | "Samoa", "Saint-Marin", "Sao Tomé-et-Principe", "Arabie Saoudite", "Sénégal", 44 | "Serbie", "Seychelles", "Sierra Leone", "Singapour", 45 | "Slovaquie (République slovaque)", "Slovénie", "Îles Salomon", "Somalie", 46 | "Afrique du Sud", "Géorgie du Sud et îles Sandwich du Sud", "Espagne", 47 | "Sri Lanka", "Soudan", "Suriname", "Îles Svalbard et Jan Mayen", "Swaziland", 48 | "Suède", "Suisse", "République arabe syrienne", "Taïwan", "Tadjikistan", 49 | "Tanzanie", "Thaïlande", "Timor-Leste", "Togo", "Tokelau", "Tonga", 50 | "Trinité-et-Tobago", "Tunisie", "Turquie", "Turkménistan", 51 | "Îles Turks et Caicos", "Tuvalu", "Ouganda", "Ukraine", "Émirats arabes unis", 52 | "Royaume-Uni", "Îles mineures éloignées des États-Unis", 53 | "États-Unis d'Amérique", "Uruguay", "Ouzbékistan", "Vanuatu", "Venezuela", 54 | "Viêt Nam", "Îles Vierges britanniques", "Îles Vierges américaines", 55 | "Wallis et Futuna", "Sahara occidental", "Yémen", "Zambie", "Zimbabwe", 56 | ] 57 | 58 | pub type Department { 59 | Department(number: String, name: String) 60 | } 61 | 62 | pub const departments: List(Department) = [ 63 | Department(number: "01", name: "Ain"), 64 | Department(number: "02", name: "Aisne"), 65 | Department(number: "03", name: "Allier"), 66 | Department(number: "04", name: "Alpes-de-Haute-Provence"), 67 | Department(number: "05", name: "Hautes-Alpes"), 68 | Department(number: "06", name: "Alpes-Maritimes"), 69 | Department(number: "07", name: "Ardèche"), 70 | Department(number: "08", name: "Ardennes"), 71 | Department(number: "09", name: "Ariège"), 72 | Department(number: "10", name: "Aube"), 73 | Department(number: "11", name: "Aude"), 74 | Department(number: "12", name: "Aveyron"), 75 | Department(number: "13", name: "Bouches-du-Rhône"), 76 | Department(number: "14", name: "Calvados"), 77 | Department(number: "15", name: "Cantal"), 78 | Department(number: "16", name: "Charente"), 79 | Department(number: "17", name: "Charente-Maritime"), 80 | Department(number: "18", name: "Cher"), 81 | Department(number: "19", name: "Corrèze"), 82 | Department(number: "21", name: "Côte-d'Or"), 83 | Department(number: "22", name: "Côtes-d'Armor"), 84 | Department(number: "23", name: "Creuse"), 85 | Department(number: "24", name: "Dordogne"), 86 | Department(number: "25", name: "Doubs"), 87 | Department(number: "26", name: "Drôme"), 88 | Department(number: "27", name: "Eure"), 89 | Department(number: "28", name: "Eure-et-Loir"), 90 | Department(number: "29", name: "Finistère"), 91 | Department(number: "30", name: "Gard"), 92 | Department(number: "31", name: "Haute-Garonne"), 93 | Department(number: "32", name: "Gers"), 94 | Department(number: "33", name: "Gironde"), 95 | Department(number: "34", name: "Hérault"), 96 | Department(number: "35", name: "Ille-et-Vilaine"), 97 | Department(number: "36", name: "Indre"), 98 | Department(number: "37", name: "Indre-et-Loire"), 99 | Department(number: "38", name: "Isère"), 100 | Department(number: "39", name: "Jura"), 101 | Department(number: "40", name: "Landes"), 102 | Department(number: "41", name: "Loir-et-Cher"), 103 | Department(number: "42", name: "Loire"), 104 | Department(number: "43", name: "Haute-Loire"), 105 | Department(number: "44", name: "Loire-Atlantique"), 106 | Department(number: "45", name: "Loiret"), 107 | Department(number: "46", name: "Lot"), 108 | Department(number: "47", name: "Lot-et-Garonne"), 109 | Department(number: "48", name: "Lozère"), 110 | Department(number: "49", name: "Maine-et-Loire"), 111 | Department(number: "50", name: "Manche"), 112 | Department(number: "51", name: "Marne"), 113 | Department(number: "52", name: "Haute-Marne"), 114 | Department(number: "53", name: "Mayenne"), 115 | Department(number: "54", name: "Meurthe-et-Moselle"), 116 | Department(number: "55", name: "Meuse"), 117 | Department(number: "56", name: "Morbihan"), 118 | Department(number: "57", name: "Moselle"), 119 | Department(number: "58", name: "Nièvre"), 120 | Department(number: "59", name: "Nord"), 121 | Department(number: "60", name: "Oise"), 122 | Department(number: "61", name: "Orne"), 123 | Department(number: "62", name: "Pas-de-Calais"), 124 | Department(number: "63", name: "Puy-de-Dôme"), 125 | Department(number: "64", name: "Pyrénées-Atlantiques"), 126 | Department(number: "65", name: "Hautes-Pyrénées"), 127 | Department(number: "66", name: "Pyrénées-Orientales"), 128 | Department(number: "69", name: "Rhône"), 129 | Department(number: "70", name: "Haute-Saône"), 130 | Department(number: "71", name: "Saône-et-Loire"), 131 | Department(number: "72", name: "Sarthe"), 132 | Department(number: "73", name: "Savoie"), 133 | Department(number: "74", name: "Haute-Savoie"), 134 | Department(number: "76", name: "Seine-Maritime"), 135 | Department(number: "77", name: "Seine-et-Marne"), 136 | Department(number: "78", name: "Yvelines"), 137 | Department(number: "79", name: "Deux-Sèvres"), 138 | Department(number: "80", name: "Somme"), 139 | Department(number: "81", name: "Tarn"), 140 | Department(number: "82", name: "Tarn-et-Garonne"), 141 | Department(number: "83", name: "Var"), 142 | Department(number: "84", name: "Vaucluse"), 143 | Department(number: "85", name: "Vendée"), 144 | Department(number: "86", name: "Vienne"), 145 | Department(number: "87", name: "Haute-Vienne"), 146 | Department(number: "88", name: "Vosges"), 147 | Department(number: "89", name: "Yonne"), 148 | Department(number: "90", name: "Territoire de Belfort"), 149 | Department(number: "91", name: "Essonne"), 150 | Department(number: "92", name: "Hauts-de-Seine"), 151 | Department(number: "93", name: "Seine-Saint-Denis"), 152 | Department(number: "94", name: "Val-de-Marne"), 153 | Department(number: "95", name: "Val-d'Oise"), 154 | Department(number: "971", name: "Guadeloupe"), 155 | Department(number: "972", name: "Martinique"), 156 | Department(number: "973", name: "Guyane"), 157 | Department(number: "974", name: "La Réunion"), 158 | Department(number: "976", name: "Mayotte"), 159 | ] 160 | 161 | pub type City { 162 | City(name: String, postal_codes: List(String)) 163 | } 164 | 165 | pub const cities = [ 166 | City(name: "Marignane", postal_codes: ["13700"]), 167 | City(name: "Laval", postal_codes: ["53000"]), 168 | City( 169 | name: "Bordeaux", 170 | postal_codes: ["33000", "33100", "33200", "33300", "33800"], 171 | ), 172 | City(name: "Cholet", postal_codes: ["49300"]), 173 | City(name: "Agen", postal_codes: ["47000"]), 174 | City( 175 | name: "Toulouse", 176 | postal_codes: ["31000", "31100", "31200", "31300", "31400", "31500"], 177 | ), 178 | City(name: "Haguenau", postal_codes: ["67500"]), 179 | City(name: "Antony", postal_codes: ["92160"]), 180 | City(name: "Bezons", postal_codes: ["95870"]), 181 | City(name: "Clamart", postal_codes: ["92140"]), 182 | City(name: "Neuilly-sur-Seine", postal_codes: ["92200"]), 183 | City(name: "Six-Fours-les-Plages", postal_codes: ["83140"]), 184 | City(name: "Palaiseau", postal_codes: ["91120"]), 185 | City(name: "Vitry-sur-Seine", postal_codes: ["94400"]), 186 | City(name: "Castres", postal_codes: ["02680", "81100"]), 187 | City(name: "Tourcoing", postal_codes: ["59200"]), 188 | City(name: "Le Blanc-Mesnil", postal_codes: ["93150"]), 189 | City(name: "Cagnes-sur-Mer", postal_codes: ["06800"]), 190 | City(name: "Arras", postal_codes: ["62000"]), 191 | City(name: "Nogent-sur-Marne", postal_codes: ["94130"]), 192 | City( 193 | name: "Lille", 194 | postal_codes: ["59000", "59160", "59260", "59777", "59800"], 195 | ), 196 | City(name: "Ajaccio", postal_codes: ["20000", "20090", "20167"]), 197 | City(name: "Courbevoie", postal_codes: ["92400"]), 198 | City(name: "Colomiers", postal_codes: ["31770"]), 199 | City(name: "Les Mureaux", postal_codes: ["78130"]), 200 | City( 201 | name: "Bagneux", 202 | postal_codes: ["02290", "03460", "36210", "51260", "54170", "92220"], 203 | ), 204 | City(name: "Bondy", postal_codes: ["93140"]), 205 | City(name: "Montrouge", postal_codes: ["92120"]), 206 | City(name: "Creil", postal_codes: ["60100"]), 207 | City(name: "La Rochelle", postal_codes: ["17000", "70120"]), 208 | City(name: "Clichy", postal_codes: ["92110"]), 209 | City(name: "Mantes-la-Jolie", postal_codes: ["78200"]), 210 | City(name: "Clermont-Ferrand", postal_codes: ["63000", "63100"]), 211 | City(name: "Tarbes", postal_codes: ["65000"]), 212 | City(name: "Limoges", postal_codes: ["87000", "87100", "87280"]), 213 | City(name: "Vitrolles", postal_codes: ["05110", "13127"]), 214 | City(name: "Villeurbanne", postal_codes: ["69100"]), 215 | City(name: "La Possession", postal_codes: ["97419"]), 216 | City(name: "Albi", postal_codes: ["81000"]), 217 | City(name: "Martigues", postal_codes: ["13117", "13500"]), 218 | City(name: "Pessac", postal_codes: ["33600"]), 219 | City(name: "Schiltigheim", postal_codes: ["67300"]), 220 | City(name: "Noisy-le-Sec", postal_codes: ["93130"]), 221 | City(name: "Alfortville", postal_codes: ["94140"]), 222 | City(name: "Le Perreux-sur-Marne", postal_codes: ["94170"]), 223 | City(name: "Grenoble", postal_codes: ["38000", "38100"]), 224 | City(name: "Caluire-et-Cuire", postal_codes: ["69300"]), 225 | City(name: "La Courneuve", postal_codes: ["93120"]), 226 | City(name: "Perpignan", postal_codes: ["66000", "66100"]), 227 | City(name: "Menton", postal_codes: ["06500"]), 228 | City(name: "Avignon", postal_codes: ["84000", "84140"]), 229 | City(name: "Bastia", postal_codes: ["20200", "20600"]), 230 | City(name: "Choisy-le-Roi", postal_codes: ["94600"]), 231 | City(name: "Savigny-sur-Orge", postal_codes: ["91600"]), 232 | City(name: "Cambrai", postal_codes: ["59400"]), 233 | City(name: "Goussainville", postal_codes: ["28410", "95190"]), 234 | City(name: "Meaux", postal_codes: ["77100"]), 235 | City(name: "Carpentras", postal_codes: ["84200"]), 236 | City(name: "Versailles", postal_codes: ["78000"]), 237 | City(name: "Pantin", postal_codes: ["93500"]), 238 | City(name: "Gennevilliers", postal_codes: ["92230"]), 239 | City(name: "Strasbourg", postal_codes: ["67000", "67100", "67200"]), 240 | City(name: "Trappes", postal_codes: ["78190"]), 241 | City(name: "Talence", postal_codes: ["33400"]), 242 | City(name: "Stains", postal_codes: ["93240"]), 243 | City(name: "Fort-de-France", postal_codes: ["97200", "97234"]), 244 | City(name: "Houilles", postal_codes: ["78800"]), 245 | City(name: "Massy", postal_codes: ["76270", "91300"]), 246 | City(name: "Poissy", postal_codes: ["78300"]), 247 | City(name: "Bron", postal_codes: ["69500"]), 248 | City(name: "Malakoff", postal_codes: ["92240"]), 249 | City(name: "Aubagne", postal_codes: ["13400"]), 250 | City(name: "Rillieux-la-Pape", postal_codes: ["69140"]), 251 | City(name: "Cayenne", postal_codes: ["97300"]), 252 | City(name: "Rennes", postal_codes: ["35000", "35200", "35700"]), 253 | City(name: "Pierrefitte-sur-Seine", postal_codes: ["93380"]), 254 | City( 255 | name: "Marseille", 256 | postal_codes: [ 257 | "13001", "13002", "13003", "13004", "13005", "13006", "13007", "13008", 258 | "13009", "13010", "13011", "13012", "13013", "13014", "13015", "13016", 259 | ], 260 | ), 261 | City(name: "Vaulx-en-Velin", postal_codes: ["69120"]), 262 | City(name: "Maisons-Alfort", postal_codes: ["94700"]), 263 | City(name: "Baie-Mahault", postal_codes: ["97122"]), 264 | City(name: "Champigny-sur-Marne", postal_codes: ["94500"]), 265 | City(name: "Thonon-les-Bains", postal_codes: ["74200"]), 266 | City( 267 | name: "Arles", 268 | postal_codes: ["13104", "13123", "13129", "13200", "13280"], 269 | ), 270 | City(name: "Wattrelos", postal_codes: ["59150"]), 271 | City(name: "Ivry-sur-Seine", postal_codes: ["94200"]), 272 | City(name: "Salon-de-Provence", postal_codes: ["13300"]), 273 | City(name: "Nanterre", postal_codes: ["92000"]), 274 | City(name: "Argenteuil", postal_codes: ["95100"]), 275 | City(name: "Meyzieu", postal_codes: ["69330"]), 276 | City(name: "Bourges", postal_codes: ["18000"]), 277 | City(name: "La Roche-sur-Yon", postal_codes: ["85000"]), 278 | City(name: "Boulogne-Billancourt", postal_codes: ["92100"]), 279 | City(name: "Puteaux", postal_codes: ["92800"]), 280 | City(name: "Lorient", postal_codes: ["56100"]), 281 | City(name: "Rueil-Malmaison", postal_codes: ["92500"]), 282 | City(name: "Le Cannet", postal_codes: ["06110"]), 283 | City(name: "Sarcelles", postal_codes: ["95200"]), 284 | City(name: "Le Havre", postal_codes: ["76600", "76610", "76620"]), 285 | City(name: "Les Abymes", postal_codes: ["97139", "97142"]), 286 | City(name: "Reims", postal_codes: ["51100"]), 287 | City(name: "Thiais", postal_codes: ["94320"]), 288 | City(name: "Villejuif", postal_codes: ["94800"]), 289 | City(name: "Angers", postal_codes: ["49000", "49100"]), 290 | City(name: "Blois", postal_codes: ["41000"]), 291 | City(name: "Le Lamentin", postal_codes: ["97232"]), 292 | City(name: "Rouen", postal_codes: ["76000", "76100"]), 293 | City(name: "Le Mans", postal_codes: ["72000", "72100"]), 294 | City(name: "Nancy", postal_codes: ["54000", "54100"]), 295 | City(name: "Auxerre", postal_codes: ["89000", "89290"]), 296 | City(name: "Sevran", postal_codes: ["93270"]), 297 | City(name: "Valence", postal_codes: ["16460", "26000"]), 298 | City(name: "Caen", postal_codes: ["14000"]), 299 | City(name: "Issy-les-Moulineaux", postal_codes: ["92130"]), 300 | City(name: "Mamoudzou", postal_codes: ["97600", "97605"]), 301 | City(name: "Sartrouville", postal_codes: ["78500"]), 302 | City(name: "Montigny-le-Bretonneux", postal_codes: ["78180"]), 303 | City(name: "Beauvais", postal_codes: ["60000"]), 304 | City(name: "Toulon", postal_codes: ["83000", "83100", "83200"]), 305 | City(name: "Nevers", postal_codes: ["58000"]), 306 | City(name: "Roubaix", postal_codes: ["59100"]), 307 | City(name: "Athis-Mons", postal_codes: ["91200"]), 308 | City(name: "Vienne", postal_codes: ["38200"]), 309 | City(name: "Antibes", postal_codes: ["06160", "06600"]), 310 | City( 311 | name: "Paris", 312 | postal_codes: [ 313 | "75001", "75002", "75003", "75004", "75005", "75006", "75007", "75008", 314 | "75009", "75010", "75011", "75012", "75013", "75014", "75015", "75016", 315 | "75116", "75017", "75018", "75019", "75020", 316 | ], 317 | ), 318 | City(name: "Dreux", postal_codes: ["28100"]), 319 | City(name: "Cannes", postal_codes: ["06150", "06400"]), 320 | City(name: "Troyes", postal_codes: ["10000"]), 321 | City(name: "Bagnolet", postal_codes: ["93170"]), 322 | City(name: "Nice", postal_codes: ["06000", "06100", "06200", "06300"]), 323 | City(name: "Aubervilliers", postal_codes: ["93300"]), 324 | City(name: "Romainville", postal_codes: ["93230"]), 325 | City(name: "Gagny", postal_codes: ["93220"]), 326 | City(name: "Cergy", postal_codes: ["95000", "95800"]), 327 | City(name: "Villepinte", postal_codes: ["11150", "93420"]), 328 | City(name: "Villiers-sur-Marne", postal_codes: ["94350"]), 329 | City(name: "Calais", postal_codes: ["62100"]), 330 | City(name: "Cachan", postal_codes: ["94230"]), 331 | City(name: "Pontault-Combault", postal_codes: ["77340"]), 332 | City(name: "Nantes", postal_codes: ["44000", "44100", "44200", "44300"]), 333 | City(name: "Montreuil", postal_codes: ["28500", "85200", "93100"]), 334 | City(name: "Plaisir", postal_codes: ["78370"]), 335 | City(name: "Suresnes", postal_codes: ["92150"]), 336 | City(name: "Lens", postal_codes: ["62300"]), 337 | City(name: "Matoury", postal_codes: ["97351"]), 338 | City(name: "Melun", postal_codes: ["77000"]), 339 | City(name: "Amiens", postal_codes: ["80000", "80080", "80090"]), 340 | City(name: "La Seyne-sur-Mer", postal_codes: ["83500"]), 341 | City(name: "Neuilly-sur-Marne", postal_codes: ["93330"]), 342 | City(name: "Fontenay-sous-Bois", postal_codes: ["94120"]), 343 | City(name: "Draguignan", postal_codes: ["83300"]), 344 | City( 345 | name: "Aix-en-Provence", 346 | postal_codes: ["13080", "13090", "13100", "13290", "13540"], 347 | ), 348 | City(name: "Levallois-Perret", postal_codes: ["92300"]), 349 | City(name: "Colombes", postal_codes: ["92700"]), 350 | City(name: "Narbonne", postal_codes: ["11100"]), 351 | City(name: "Valenciennes", postal_codes: ["59300"]), 352 | City(name: "Roanne", postal_codes: ["42300"]), 353 | City(name: "Drancy", postal_codes: ["93700"]), 354 | City(name: "Niort", postal_codes: ["79000"]), 355 | City(name: "Meudon", postal_codes: ["92190", "92360"]), 356 | City(name: "Anglet", postal_codes: ["64600"]), 357 | City(name: "Bourg-en-Bresse", postal_codes: ["01000"]), 358 | City(name: "Mont-de-Marsan", postal_codes: ["40000"]), 359 | City(name: "Pontoise", postal_codes: ["95000", "95300"]), 360 | City(name: "La Ciotat", postal_codes: ["13600"]), 361 | City(name: "Tours", postal_codes: ["37000", "37100", "37200"]), 362 | City(name: "Bobigny", postal_codes: ["93000"]), 363 | City(name: "Pau", postal_codes: ["64000"]), 364 | City(name: "Montpellier", postal_codes: ["34000", "34070", "34080", "34090"]), 365 | City(name: "Rosny-sous-Bois", postal_codes: ["93110"]), 366 | City(name: "Tremblay-en-France", postal_codes: ["93290"]), 367 | City(name: "Grasse", postal_codes: ["06130", "06520"]), 368 | City(name: "Chelles", postal_codes: ["60350", "77500"]), 369 | City(name: "Brive-la-Gaillarde", postal_codes: ["19100"]), 370 | City(name: "Aix-les-Bains", postal_codes: ["73100"]), 371 | City(name: "Poitiers", postal_codes: ["86000"]), 372 | City(name: "Vigneux-sur-Seine", postal_codes: ["91270"]), 373 | City(name: "Livry-Gargan", postal_codes: ["93190"]), 374 | City(name: "Franconville", postal_codes: ["54830"]), 375 | City(name: "Montauban", postal_codes: ["82000"]), 376 | City(name: "Le Tampon", postal_codes: ["97418", "97430"]), 377 | City(name: "Chartres", postal_codes: ["28000"]), 378 | City(name: "Boulogne-sur-Mer", postal_codes: ["62200"]), 379 | City(name: "Herblay-sur-Seine", postal_codes: ["95220"]), 380 | City(name: "Istres", postal_codes: ["13118", "13800"]), 381 | City(name: "Annemasse", postal_codes: ["74100"]), 382 | City(name: "Dijon", postal_codes: ["21000"]), 383 | City(name: "Mulhouse", postal_codes: ["68100", "68200"]), 384 | City(name: "Quimper", postal_codes: ["29000"]), 385 | City(name: "Brest", postal_codes: ["29200"]), 386 | City(name: "Corbeil-Essonnes", postal_codes: ["91100"]), 387 | City(name: "Thionville", postal_codes: ["57100"]), 388 | City(name: "Savigny-le-Temple", postal_codes: ["77176"]), 389 | City(name: "Belfort", postal_codes: ["90000"]), 390 | City(name: "Douai", postal_codes: ["59500"]), 391 | City(name: "Gap", postal_codes: ["05000"]), 392 | City(name: "Bayonne", postal_codes: ["64100"]), 393 | City(name: "Aulnay-sous-Bois", postal_codes: ["93600"]), 394 | City(name: "Metz", postal_codes: ["57000", "57050", "57070"]), 395 | City(name: "Le Port", postal_codes: ["09320", "97420"]), 396 | City(name: "Colmar", postal_codes: ["68000"]), 397 | City(name: "Vincennes", postal_codes: ["94300"]), 398 | City( 399 | name: "Lyon", 400 | postal_codes: [ 401 | "69001", "69002", "69003", "69004", "69005", "69006", "69007", "69008", 402 | "69009", 403 | ], 404 | ), 405 | City(name: "Noisy-le-Grand", postal_codes: ["93160"]), 406 | City(name: "Villemomble", postal_codes: ["93250"]), 407 | City(name: "Vannes", postal_codes: ["56000"]), 408 | City(name: "Koungou", postal_codes: ["97600"]), 409 | City(name: "Carcassonne", postal_codes: ["11000"]), 410 | ] 411 | 412 | pub const streets = [ 413 | "abbaye", "agglomération", "aire", "aires", "allée", "allées", "ancien chemin", 414 | "ancienne route", "anciennes routes", "anciens chemins", "anse", "arcade", 415 | "arcades", "autoroute", "avenue", "barriere", "barrieres", "bas chemin", 416 | "bastide", "bastion", "beguinage", "béguinages", "berge", "berges", "bois", 417 | "boucle", "boulevard", "bourg", "butte", "cale", "camp", "campagne", "camping", 418 | "carre", "carreau", "carrefour", "carrière", "carrières", "castel", "cavée", 419 | "central", "centre", "centre commercial", "chalet", "chapelle", "charmille", 420 | "château", "chaussée", "chaussées", "chemin", "chemin vicinal", "cheminement", 421 | "cheminements", "chemins", "chemins vicinaux", "chez", "cite", "cites", 422 | "cloître", "clos", "col", "colline", "collines", "contour", "corniche", 423 | "corniches", "cote", "côteau", "cottage", "cottages", "cour", "cours", "darse", 424 | "degré", "degrés", "descente", "descentes", "digue", "digues", "domaine", 425 | "domaines", "écluse", "écluses", "église", "enceinte", "enclave", "enclos", 426 | "escalier", "escaliers", "espace", "esplanade", "esplanades", "étang", 427 | "faubourg", "ferme", "fermes", "fontaine", "fort", "forum", "fosse", "fosses", 428 | "foyer", "galerie", "galeries", "gare", "garenne", "grand boulevard", 429 | "grand ensemble", "grand rue", "grande rue", "grandes rues", 430 | "grands ensembles", "grille", "grimpette", "groupe", "groupement", "groupes", 431 | "halle", "halles", "hameau", "hameaux", "haut chemin", "hauts chemins", 432 | "hippodrome", "hlm", "île", "immeuble", "immeubles", "impasse", "impasses", 433 | "jardin", "jardins", "jetée", "jetees", "levée", "lieu dit", "lotissement", 434 | "lotissements", "mail", "maison forestière", "manoir", "marche", "marches", 435 | "mas", "métro", "montée", "montees", "moulin", "moulins", "musée", 436 | "nouvelle route", "palais", "parc", "parcs", "parking", "parvis", "passage", 437 | "passage à niveau", "passe", "passerelle", "passerelles", "passes", "patio", 438 | "pavillon", "pavillons", "péripherique", "péristyle", "petit chemin", 439 | "petite allée", "petite avenue", "petite impasse", "petite route", 440 | "petite rue", "petites allées", "place", "placis", "plage", "plages", "plaine", 441 | "plan", "plateau", "plateaux", "pointe", "pont", "ponts", "porche", "port", 442 | "porte", "portique", "portiques", "poterne", "pourtour", "pré", "presqu'île", 443 | "promenade", "quai", "quartier", "raccourci", "raidillon", "rampe", "rempart", 444 | "résidence", "résidences", "roc", "rocade", "rond point", "roquet", "rotonde", 445 | "route", "routes", "rue", "ruelle", "ruelles", "rues", "sente", "sentes", 446 | "sentier", "sentiers", "square", "stade", "station", "terrain", "terrasse", 447 | "terrasses", "terre plein", "tertre", "tertres", "tour", "traverse", "val", 448 | "vallée", "vallon", "venelle", "venelles", "via", "vieille route", 449 | "vieux chemin", "villa", "village", "villages", "villas", "voie", "voies", 450 | "zone", "zone industrielle", "zone à urbaniser en priorité", "zone artisanale", 451 | "zone d'activité", "zone d'amenagement concerté", "zone d'amenagement differé", 452 | ] 453 | 454 | pub const directions = [ 455 | "Nord", "Est", "Sud", "Ouest", "Nord-Est", "Nort-Ouest", "Sud-Est", 456 | "Sud-Ouest", 457 | ] 458 | 459 | pub const direction_codes = ["N", "E", "S", "O", "NE", "NO", "SE", "SO"] 460 | 461 | pub const time_zones = [ 462 | "Afrique/Alger", "Afrique/Le_Caire", "Afrique/Casablanca", "Afrique/Harare", 463 | "Afrique/Johannesburg", "Afrique/Monrovia", "Afrique/Nairobi", 464 | "Amérique/Argentine/Buenos_Aires", "Amérique/Bogota", "Amérique/Caracas", 465 | "Amérique/Chicago", "Amérique/Chihuahua", "Amérique/Denver", 466 | "Amérique/Godthab", "Amérique/Guatemala", "Amérique/Guyane", 467 | "Amérique/Halifax", "Amérique/Indiana/Indianapolis", "Amérique/Juneau", 468 | "Amérique/La_Paz", "Amérique/Lima", "Amérique/Los_Angeles", 469 | "Amérique/Mazatlan", "Amérique/Mexico_City", "Amérique/Monterrey", 470 | "Amérique/New_York", "Amérique/Phoenix", "Amérique/Regina", 471 | "Amérique/Santiago", "Amérique/Sao_Paulo", "Amérique/St_Johns", 472 | "Amérique/Tijuana", "Asie/Almaty", "Asie/Bagdad", "Asie/Baku", "Asie/Bangkok", 473 | "Asie/Chongqing", "Asie/Colombo", "Asie/Calcutta", "Asie/Dhaka", 474 | "Asie/Hong_Kong", "Asie/Irkoutsk", "Asie/Jakarta", "Asie/Jérusalem", 475 | "Asie/Kaboul", "Asie/Kamchatka", "Asie/Karachi", "Asie/Katmandou", 476 | "Asie/Krasnoïarsk", "Asie/Kuala_Lumpur", "Asie/Koweït", "Asie/Magadan", 477 | "Asie/Muscat", "Asie/Novossibirsk", "Asie/Oulan-Bator", "Asie/Rangoon", 478 | "Asie/Riyadh", "Asie/Séoul", "Asie/Shanghai", "Asie/Singapour", "Asie/Taipei", 479 | "Asie/Tachkent", "Asie/Tbilissi", "Asie/Téhéran", "Asie/Tokyo", "Asie/Urumqi", 480 | "Asie/Vladivostok", "Asie/Yakutsk", "Asie/Ekaterinbourg", "Asie/Erevan", 481 | "Atlantique/Açores", "Atlantique/Cap_Vert", "Atlantique/Géorgie du Sud", 482 | "Australie/Adélaïde", "Australie/Brisbane", "Australie/Darwin", 483 | "Australie/Hobart", "Australie/Melbourne", "Australie/Perth", 484 | "Australie/Sydney", "Etc/UTC", "Europe/Amsterdam", "Europe/Athènes", 485 | "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Bruxelles", 486 | "Europe/Bucarest", "Europe/Budapest", "Europe/Copenhague", "Europe/Dublin", 487 | "Europe/Helsinki", "Europe/Istanbul", "Europe/Kiev", "Europe/Lisbonne", 488 | "Europe/Ljubljana", "Europe/Londres", "Europe/Madrid", "Europe/Minsk", 489 | "Europe/Moscou", "Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome", 490 | "Europe/Sarajevo", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", 491 | "Europe/Tallinn", "Europe/Vienne", "Europe/Vilnius", "Europe/Varsovie", 492 | "Europe/Zagreb", "Pacifique/Apia", "Pacifique/Auckland", "Pacifique/Fakaofo", 493 | "Pacifique/Fiji", "Pacifique/Guam", "Pacific/Honolulu", "Pacific/Majuro", 494 | "Pacific/Midway", "Pacific/Noumea", "Pacifique/Pago_Pago", 495 | "Pacifique/Port_Moresby", "Pacifique/Tongatapu", 496 | ] 497 | -------------------------------------------------------------------------------- /src/blah/locales/fr/finance.gleam: -------------------------------------------------------------------------------- 1 | pub const currencies = [ 2 | #("Afghanistan Afghani", "AFN", "؋"), #("Arménie Dram", "AMD", "֏"), 3 | #("Albanie Lek", "ALL", "Lek"), #("Curaçao Florin", "ANG", "ƒ"), 4 | #("Argentine Peso", "ARS", "$"), #("Australie Dollar", "AUD", "$"), 5 | #("Aruba Florin", "AWG", "ƒ"), #("Azerbaïdjan Manat", "AZN", "₼"), 6 | #("Bosnie-Herzegovine Mark Convertible", "BAM", "KM"), 7 | #("Barbade Dollar", "BBD", "$"), #("Bangladesh Taka", "BDT", "৳"), 8 | #("Bulgarie Lev", "BGN", "лв"), #("Bermudes Dollar", "BMD", "$"), 9 | #("Brunei Dollar", "BND", "$"), #("Bolivie Bolíviano", "BOB", "$b"), 10 | #("Brésil Real", "BRL", "R$"), #("Bahamas Dollar", "BSD", "$"), 11 | #("Botswana Pula", "BWP", "P"), #("Biélorussie Rouble", "BYN", "Br"), 12 | #("Belize Dollar", "BZD", "BZ$"), #("Canada Dollar", "CAD", "$"), 13 | #("Suisse Franc", "CHF", "CHF"), #("Chili Peso", "CLP", "$"), 14 | #("Chine Yuan Renminbi", "CNY", "¥"), #("Colombie Peso", "COP", "$"), 15 | #("Costa Rica Colon", "CRC", "₡"), #("Cuba Peso", "CUP", "₱"), 16 | #("République Tchèque Couronne", "CZK", "Kč"), 17 | #("Danemark Couronne", "DKK", "kr"), 18 | #("République Dominicaine Peso", "DOP", "RD$"), #("Égypte Livre", "EGP", "£"), 19 | #("Pays de l'Eurozone Euro", "EUR", "€"), #("Fiji Dollar", "FJD", "$"), 20 | #("Iles Malouines Livre", "FKP", "£"), #("Royaume-Uni Livre", "GBP", "£"), 21 | #("Géorgie Lari", "GEL", "₾"), #("Guernesey Livre", "GGP", "£"), 22 | #("Ghana Cedi", "GHS", "₵"), #("Gibraltar Livre", "GIP", "£"), 23 | #("Guatemala Quetzal", "GTQ", "Q"), #("Guyana Dollar", "GYD", "$"), 24 | #("Hong Kong Dollar", "HKD", "$"), #("Honduras Lempira", "HNL", "L"), 25 | #("Croatie Kuna", "HRK", "kn"), #("Hongrie Forint", "HUF", "Ft"), 26 | #("Indonesie Rupiah", "IDR", "Rp"), #("Israël Shekel", "ILS", "₪"), 27 | #("Île de Man Livre", "IMP", "£"), #("Inde Roupie", "INR", "₹"), 28 | #("Iran Rial", "IRR", "﷼"), #("Islande Couronne", "ISK", "kr"), 29 | #("Jersey Livre", "JEP", "£"), #("Jamaïque Dollar", "JMD", "J$"), 30 | #("Japon Yen", "JPY", "¥"), #("Kirghizistan Som", "KGS", "с"), 31 | #("Cambodge Riel", "KHR", "៛"), #("Corée du Nord Won", "KPW", "₩"), 32 | #("Corée du Sud Won", "KRW", "₩"), #("Îles Caïman Dollar", "KYD", "$"), 33 | #("Kazakhstan Tenge", "KZT", "₸"), #("Laos Kip", "LAK", "₭"), 34 | #("Liban Livre", "LBP", "£"), #("Sri Lanka Roupie", "LKR", "₨"), 35 | #("Liberia Dollar", "LRD", "$"), #("Macédoine du Nord Denar", "MKD", "ден"), 36 | #("Mongolie Tughrik", "MNT", "₮"), #("Île Maurice Roupie", "MUR", "₨"), 37 | #("Mexique Peso", "MXN", "$"), #("Malaisie Ringgit", "MYR", "RM"), 38 | #("Mozambique Metical", "MZN", "MT"), #("Namibia Dollar", "NAD", "$"), 39 | #("Nigeria Naira", "NGN", "₦"), #("Nicaragua Cordoba d'or", "NIO", "C$"), 40 | #("Norvège Couronne", "NOK", "kr"), #("Népal Roupie", "NPR", "₨"), 41 | #("Nouvelle Zélande Dollar", "NZD", "$"), #("Oman Rial", "OMR", "﷼"), 42 | #("Panama Balboa", "PAB", "B/."), #("Pérou Sol", "PEN", "S/."), 43 | #("Philippines Peso", "PHP", "₱"), #("Pakistan Roupie", "PKR", "₨"), 44 | #("Pologne Zloty", "PLN", "zł"), #("Paraguay Guarani", "PYG", "₲"), 45 | #("Qatar Riyal", "QAR", "﷼"), #("Roumanie Leu", "RON", "lei"), 46 | #("Serbie Dinar", "RSD", "Дин."), #("Russie Rouble", "RUB", "₽"), 47 | #("Arabie Saoudite Riyal", "SAR", "﷼"), #("Îles Salomon Dollar", "SBD", "$"), 48 | #("Seychelles Roupie", "SCR", "₨"), #("Suède Couronne", "SEK", "kr"), 49 | #("Singapour Dollar", "SGD", "$"), #("Sainte-Hélène Livre", "SHP", "£"), 50 | #("Somalie Shilling", "SOS", "S"), #("Suriname Dollar", "SRD", "$"), 51 | #("Salvador Dollar", "SVC", "$"), #("Syrie Livre", "SYP", "£"), 52 | #("Thaïlande Baht", "THB", "฿"), #("Turquie Livre", "TRY", "₺"), 53 | #("Trinité-et-Tobago Dollar", "TTD", "TT$"), #("Tuvalu Dollar", "TVD", "$"), 54 | #("Taïwan Nouveau Dollar", "TWD", "NT$"), #("Ukraine Hryvnia", "UAH", "₴"), 55 | #("États-Unis Dollar", "USD", "$"), #("Uruguay Peso", "UYU", "$U"), 56 | #("Ouzbékistan Sum", "UZS", "лв"), #("Venezuela Bolívar", "VEF", "Bs"), 57 | #("Viêt Nam Dong", "VND", "₫"), #("Caraïbes orientales Dollar", "XCD", "$"), 58 | #("Yemen Rial", "YER", "﷼"), #("Afrique du Sud Rand", "ZAR", "R"), 59 | #("Zimbabwe Dollar", "ZWD", "Z$"), 60 | ] 61 | -------------------------------------------------------------------------------- /src/blah/locales/fr/lorem.gleam: -------------------------------------------------------------------------------- 1 | pub const words = [ 2 | "a", "ab", "abbas", "abduco", "abeo", "abscido", "absconditus", "absens", 3 | "absorbeo", "absque", "abstergo", "absum", "abundans", "abutor", "accedo", 4 | "accendo", "acceptus", "accipio", "accommodo", "accusamus", "accusantium", 5 | "accusator", "acer", "acerbitas", "acervus", "acidus", "acies", "acquiro", 6 | "acsi", "ad", "adamo", "adaugeo", "addo", "adduco", "ademptio", "adeo", 7 | "adeptio", "adfectus", "adfero", "adficio", "adflicto", "adhaero", "adhuc", 8 | "adicio", "adimpleo", "adinventitias", "adipisci", "adipiscor", "adiuvo", 9 | "administratio", "admiratio", "admitto", "admoneo", "admoveo", "adnuo", 10 | "adopto", "adsidue", "adstringo", "adsuesco", "adsum", "adulatio", 11 | "adulescens", "adultus", "aduro", "advenio", "adversus", "advoco", 12 | "aedificium", "aeger", "aegre", "aegrotatio", "aegrus", "aeneus", "aequitas", 13 | "aequus", "aer", "aestas", "aestivus", "aestus", "aetas", "aeternus", "ager", 14 | "aggero", "aggredior", "agnitio", "agnosco", "ago", "ait", "aiunt", "alias", 15 | "alienus", "alii", "alioqui", "aliqua", "aliquam", "aliquid", "alius", 16 | "allatus", "alo", "alter", "altus", "alveus", "amaritudo", "ambitus", "ambulo", 17 | "amet", "amicitia", "amiculum", "amissio", "amita", "amitto", "amo", "amor", 18 | "amoveo", "amplexus", "amplitudo", "amplus", "ancilla", "angelus", "angulus", 19 | "angustus", "animadverto", "animi", "animus", "annus", "anser", "ante", 20 | "antea", "antepono", "antiquus", "aperiam", "aperio", "aperte", "apostolus", 21 | "apparatus", "appello", "appono", "appositus", "approbo", "apto", "aptus", 22 | "apud", "aqua", "ara", "aranea", "arbitro", "arbor", "arbustum", "arca", 23 | "arceo", "arcesso", "architecto", "arcus", "argentum", "argumentum", "arguo", 24 | "arma", "armarium", "armo", "aro", "ars", "articulus", "artificiose", "arto", 25 | "arx", "ascisco", "ascit", "asper", "asperiores", "aspernatur", "aspicio", 26 | "asporto", "assentator", "assumenda", "astrum", "at", "atavus", "ater", 27 | "atque", "atqui", "atrocitas", "atrox", "attero", "attollo", "attonbitus", 28 | "auctor", "auctus", "audacia", "audax", "audentia", "audeo", "audio", 29 | "auditor", "aufero", "aureus", "auris", "aurum", "aut", "autem", "autus", 30 | "auxilium", "avaritia", "avarus", "aveho", "averto", "avoco", "baiulus", 31 | "balbus", "barba", "bardus", "basium", "beatae", "beatus", "bellicus", 32 | "bellum", "bene", "beneficium", "benevolentia", "benigne", "bestia", "bibo", 33 | "bis", "blandior", "blanditiis", "bonus", "bos", "brevis", "cado", "caecus", 34 | "caelestis", "caelum", "calamitas", "calcar", "calco", "calculus", "callide", 35 | "campana", "candidus", "canis", "canonicus", "canto", "capillus", "capio", 36 | "capitulus", "capto", "caput", "carbo", "carcer", "careo", "caries", 37 | "cariosus", "caritas", "carmen", "carpo", "carus", "casso", "caste", "casus", 38 | "catena", "caterva", "cattus", "cauda", "causa", "caute", "caveo", "cavus", 39 | "cedo", "celebrer", "celer", "celo", "cena", "cenaculum", "ceno", "censura", 40 | "centum", "cerno", "cernuus", "certe", "certo", "certus", "cervus", "cetera", 41 | "charisma", "chirographum", "cibo", "cibus", "cicuta", "cilicium", 42 | "cimentarius", "ciminatio", "cinis", "circumvenio", "cito", "civis", "civitas", 43 | "clam", "clamo", "claro", "clarus", "claudeo", "claustrum", "clementia", 44 | "clibanus", "coadunatio", "coaegresco", "coepi", "coerceo", "cogito", 45 | "cognatus", "cognomen", "cogo", "cohaero", "cohibeo", "cohors", "colligo", 46 | "colloco", "collum", "colo", "color", "coma", "combibo", "comburo", "comedo", 47 | "comes", "cometes", "comis", "comitatus", "commemoro", "comminor", "commodi", 48 | "commodo", "communis", "comparo", "compello", "complectus", "compono", 49 | "comprehendo", "comptus", "conatus", "concedo", "concido", "conculco", 50 | "condico", "conduco", "confero", "confido", "conforto", "confugo", 51 | "congregatio", "conicio", "coniecto", "conitor", "coniuratio", "conor", 52 | "conqueror", "conscendo", "consectetur", "consequatur", "consequuntur", 53 | "conservo", "considero", "conspergo", "constans", "consuasor", "contabesco", 54 | "contego", "contigo", "contra", "conturbo", "conventus", "convoco", "copia", 55 | "copiose", "cornu", "corona", "corporis", "corpus", "correptius", "corrigo", 56 | "corroboro", "corrumpo", "corrupti", "coruscus", "cotidie", "crapula", "cras", 57 | "crastinus", "creator", "creber", "crebro", "credo", "creo", "creptio", 58 | "crepusculum", "cresco", "creta", "cribro", "crinis", "cruciamentum", 59 | "crudelis", "cruentus", "crur", "crustulum", "crux", "cubicularis", "cubitum", 60 | "cubo", "cui", "cuius", "culpa", "culpo", "cultellus", "cultura", "cum", 61 | "cumque", "cunabula", "cunae", "cunctatio", "cupiditas", "cupiditate", "cupio", 62 | "cuppedia", "cupressus", "cur", "cura", "curatio", "curia", "curiositas", 63 | "curis", "curo", "curriculum", "currus", "cursim", "curso", "cursus", "curto", 64 | "curtus", "curvo", "curvus", "custodia", "damnatio", "damno", "dapifer", 65 | "debeo", "debilito", "debitis", "decens", "decerno", "decet", "decimus", 66 | "decipio", "decor", "decretum", "decumbo", "dedecor", "dedico", "deduco", 67 | "defaeco", "defendo", "defero", "defessus", "defetiscor", "deficio", "defigo", 68 | "defleo", "defluo", "defungo", "degenero", "degero", "degusto", "deinde", 69 | "delectatio", "delectus", "delego", "deleniti", "deleo", "delibero", 70 | "delicate", "delinquo", "deludo", "demens", "demergo", "demitto", "demo", 71 | "demonstro", "demoror", "demulceo", "demum", "denego", "denique", "dens", 72 | "denuncio", "denuo", "deorsum", "depereo", "depono", "depopulo", "deporto", 73 | "depraedor", "deprecator", "deprimo", "depromo", "depulso", "deputo", 74 | "derelinquo", "derideo", "deripio", "deserunt", "desidero", "desino", 75 | "desipio", "desolo", "desparatus", "despecto", "despirmatio", "dicta", 76 | "dignissimos", "distinctio", "dolor", "dolore", "dolorem", "doloremque", 77 | "dolores", "doloribus", "dolorum", "ducimus", "ea", "eaque", "earum", "eius", 78 | "eligendi", "enim", "eos", "error", "esse", "est", "et", "eum", "eveniet", 79 | "ex", "excepturi", "exercitationem", "expedita", "explicabo", "facere", 80 | "facilis", "fuga", "fugiat", "fugit", "harum", "hic", "id", "illo", "illum", 81 | "impedit", "in", "incidunt", "infit", "inflammatio", "inventore", "ipsa", 82 | "ipsam", "ipsum", "iste", "itaque", "iure", "iusto", "labore", "laboriosam", 83 | "laborum", "laudantium", "libero", "magnam", "magni", "maiores", "maxime", 84 | "minima", "minus", "modi", "molestiae", "molestias", "mollitia", "nam", 85 | "natus", "necessitatibus", "nemo", "neque", "nesciunt", "nihil", "nisi", 86 | "nobis", "non", "nostrum", "nulla", "numquam", "occaecati", "ocer", "odio", 87 | "odit", "officia", "officiis", "omnis", "optio", "paens", "pariatur", "patior", 88 | "patria", "patrocinor", "patruus", "pauci", "paulatim", "pauper", "pax", 89 | "peccatus", "pecco", "pecto", "pectus", "pecunia", "pecus", "peior", "pel", 90 | "perferendis", "perspiciatis", "placeat", "porro", "possimus", "praesentium", 91 | "provident", "quae", "quaerat", "quam", "quas", "quasi", "qui", "quia", 92 | "quibusdam", "quidem", "quis", "quisquam", "quo", "quod", "quos", "ratione", 93 | "recusandae", "reiciendis", "rem", "repellat", "repellendus", "reprehenderit", 94 | "repudiandae", "rerum", "saepe", "sapiente", "sed", "sequi", "similique", 95 | "sint", "sit", "socius", "sodalitas", "sol", "soleo", "solio", "solitudo", 96 | "solium", "sollers", "sollicito", "solum", "solus", "soluta", "solutio", 97 | "solvo", "somniculosus", "somnus", "sonitus", "sono", "sophismata", "sopor", 98 | "sordeo", "sortitus", "spargo", "speciosus", "spectaculum", "speculum", 99 | "sperno", "spero", "spes", "spiculum", "spiritus", "spoliatio", "sponte", 100 | "stabilis", "statim", "statua", "stella", "stillicidium", "stipes", "stips", 101 | "sto", "strenuus", "strues", "studio", "stultus", "suadeo", "suasoria", "sub", 102 | "subito", "subiungo", "sublime", "subnecto", "subseco", "substantia", 103 | "subvenio", "succedo", "succurro", "sufficio", "suffoco", "suffragium", 104 | "suggero", "sui", "sulum", "sum", "summa", "summisse", "summopere", "sumo", 105 | "sumptus", "sunt", "supellex", "super", "suppellex", "supplanto", "suppono", 106 | "supra", "surculus", "surgo", "sursum", "suscipio", "suscipit", "suspendo", 107 | "sustineo", "suus", "synagoga", "tabella", "tabernus", "tabesco", "tabgo", 108 | "tabula", "taceo", "tactus", "taedium", "talio", "talis", "talus", "tam", 109 | "tamdiu", "tamen", "tametsi", "tamisium", "tamquam", "tandem", "tantillus", 110 | "tantum", "tardus", "tego", "temeritas", "temperantia", "templum", "tempora", 111 | "tempore", "temporibus", "temptatio", "tempus", "tenax", "tendo", "teneo", 112 | "tener", "tenetur", "tenuis", "tenus", "tepesco", "tepidus", "ter", "terebro", 113 | "teres", "terga", "tergeo", "tergiversatio", "tergo", "tergum", "termes", 114 | "terminatio", "tero", "terra", "terreo", "territo", "terror", "tersus", 115 | "tertius", "testimonium", "texo", "textilis", "textor", "textus", 116 | "thalassinus", "theatrum", "theca", "thema", "theologus", "thermae", 117 | "thesaurus", "thesis", "thorax", "thymbra", "thymum", "tibi", "timidus", 118 | "timor", "titulus", "tolero", "tollo", "tondeo", "tonsor", "torqueo", 119 | "torrens", "tot", "totam", "totidem", "toties", "totus", "tracto", "trado", 120 | "traho", "trans", "tredecim", "tremo", "trepide", "tres", "tribuo", 121 | "tricesimus", "triduana", "triginta", "tripudio", "tristis", "triumphus", 122 | "trucido", "truculenter", "tubineus", "tui", "tum", "tumultus", "tunc", 123 | "turba", "turbo", "turpe", "turpis", "tutamen", "tutis", "tyrannus", 124 | "uberrime", "ubi", "ulciscor", "ullam", "ullus", "ulterius", "ultio", "ultra", 125 | "umbra", "umerus", "umquam", "una", "unde", "undique", "universe", "unus", 126 | "urbanus", "urbs", "uredo", "usitas", "usque", "ustilo", "ustulo", "usus", 127 | "ut", "uter", "uterque", "utilis", "utique", "utor", "utpote", "utrimque", 128 | "utroque", "utrum", "uxor", "vaco", "vacuus", "vado", "vae", "valde", "valens", 129 | "valeo", "valetudo", "validus", "vallum", "vapulus", "varietas", "varius", 130 | "vehemens", "vel", "velit", "velociter", "velum", "velut", "venia", "veniam", 131 | "venio", "ventito", "ventosus", "ventus", "venustas", "ver", "verbera", 132 | "verbum", "vere", "verecundia", "vereor", "vergo", "veritas", "veritatis", 133 | "vero", "versus", "verto", "verumtamen", "verus", "vesco", "vesica", "vesper", 134 | "vespillo", "vester", "vestigium", "vestrum", "vetus", "via", "vicinus", 135 | "vicissitudo", "victoria", "victus", "videlicet", "video", "viduata", "viduo", 136 | "vigilo", "vigor", "vilicus", "vilis", "vilitas", "villa", "vinco", "vinculum", 137 | "vindico", "vinitor", "vinum", "vir", "virga", "virgo", "viridis", "viriliter", 138 | "virtus", "vis", "viscus", "vita", "vitae", "vitiosus", "vitium", "vito", 139 | "vivo", "vix", "vobis", "vociferor", "voco", "volaticus", "volo", "volubilis", 140 | "voluntarius", "volup", "voluptas", "voluptate", "voluptatem", "voluptates", 141 | "voluptatibus", "voluptatum", "volutabrum", "volva", "vomer", "vomica", 142 | "vomito", "vorago", "vorax", "voro", "vos", "votum", "voveo", "vox", 143 | "vulariter", "vulgaris", "vulgivagus", "vulgo", "vulgus", "vulnero", "vulnus", 144 | "vulpes", "vulticulus", "vultuosus", "xiphias", 145 | ] 146 | -------------------------------------------------------------------------------- /src/blah/locales/it/address.gleam: -------------------------------------------------------------------------------- 1 | pub const countries = [ 2 | "Afghanistan", "Albania", "Algeria", "Samoa Americane", "Andorra", "Angola", 3 | "Anguilla", "Antartide (territorio a sud di 60° S)", "Antigua e Barbuda", 4 | "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaigian", 5 | "Bahamas", "Bahrein", "Bangladesh", "Barbados", "Bielorussia", "Belgio", 6 | "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia ed Erzegovina", 7 | "Botswana", "Isola Bouvet (Bouvetøya)", "Brasile", 8 | "Territorio Britannico dell'Oceano Indiano (arcipelago di Chagos)", 9 | "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambogia", 10 | "Camerun", "Canada", "Capo Verde", "Isole Cayman", "Repubblica Centrafricana", 11 | "Ciad", "Cile", "Cina", "Isola di Natale", "Isole Cocos (Keeling)", "Colombia", 12 | "Comore", "Congo", "Isole Cook", "Costa Rica", "Costa d'Avorio", "Croazia", 13 | "Cuba", "Cipro", "Repubblica Ceca", "Repubblica Popolare Democratica di Corea", 14 | "Danimarca", "Gibuti", "Dominica", "Repubblica Dominicana", "Ecuador", 15 | "Egitto", "El Salvador", "Guinea Equatoriale", "Eritrea", "Estonia", "Etiopia", 16 | "Isole Falkland (Malvine)", "Isole Faroe", "Figi", "Finlandia", "Francia", 17 | "Guyana Francese", "Polinesia Francese", "Territori Francesi del Sud", "Gabon", 18 | "Gambia", "Georgia", "Germania", "Ghana", "Gibilterra", "Grecia", 19 | "Groenlandia", "Grenada", "Guadalupa", "Guam", "Guatemala", "Guernsey", 20 | "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Isole Heard e Isole McDonald", 21 | "Santa Sede (Città del Vaticano)", "Honduras", "Hong Kong", "Ungheria", 22 | "Islanda", "India", "Indonesia", "Iran", "Iraq", "Irlanda", "Isola di Man", 23 | "Israele", "Italia", "Giamaica", "Giappone", "Jersey", "Giordania", 24 | "Kazakistan", "Kenya", "Kiribati", "Kuwait", "Repubblica del Kirghizistan", 25 | "Repubblica Democratica Popolare del Laos", "Lettonia", "Libano", "Lesotho", 26 | "Liberia", "Jamahiriya Araba Libica", "Liechtenstein", "Lituania", 27 | "Lussemburgo", "Macao", "Macedonia", "Madagascar", "Malawi", "Malaysia", 28 | "Maldive", "Mali", "Malta", "Isole Marshall", "Martinica", "Mauritania", 29 | "Mauritius", "Mayotte", "Messico", "Micronesia", "Moldavia", "Monaco", 30 | "Mongolia", "Montenegro", "Montserrat", "Marocco", "Mozambico", "Myanmar", 31 | "Namibia", "Nauru", "Nepal", "Antille Olandesi", "Paesi Bassi", 32 | "Nuova Caledonia", "Nuova Zelanda", "Nicaragua", "Niger", "Nigeria", "Niue", 33 | "Isola Norfolk", "Isole Marianne Settentrionali", "Norvegia", "Oman", 34 | "Pakistan", "Palau", "Territorio Palestinese", "Panama", "Papua Nuova Guinea", 35 | "Paraguay", "Perù", "Filippine", "Isole Pitcairn", "Polonia", "Portogallo", 36 | "Porto Rico", "Qatar", "Repubblica di Corea", "Riunione", "Romania", 37 | "Federazione Russa", "Ruanda", "Saint Barthelemy", "Sant'Elena", 38 | "Saint Kitts e Nevis", "Santa Lucia", "Saint Martin", 39 | "Saint Pierre e Miquelon", "Saint Vincent e Grenadine", "Samoa", "San Marino", 40 | "Sao Tomé e Principe", "Arabia Saudita", "Senegal", "Serbia", "Seychelles", 41 | "Sierra Leone", "Singapore", "Slovacchia (Repubblica Slovacca)", "Slovenia", 42 | "Isole Salomone", "Somalia", "Sudafrica", 43 | "Georgia del Sud e Isole Sandwich Meridionali", "Spagna", "Sri Lanka", "Sudan", 44 | "Suriname", "Svalbard e Isole Jan Mayen", "Swaziland", "Svezia", "Svizzera", 45 | "Repubblica Araba Siriana", "Taiwan", "Tagikistan", "Tanzania", "Thailandia", 46 | "Timor-Leste", "Togo", "Tokelau", "Tonga", "Trinidad e Tobago", "Tunisia", 47 | "Turchia", "Turkmenistan", "Isole Turks e Caicos", "Tuvalu", "Uganda", 48 | "Ucraina", "Emirati Arabi Uniti", "Regno Unito", 49 | "Isole Minori Esterne degli Stati Uniti", "Stati Uniti d'America", "Uruguay", 50 | "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Isole Vergini Britanniche", 51 | "Isole Vergini Americane", "Wallis e Futuna", "Sahara Occidentale", "Yemen", 52 | "Zambia", "Zimbabwe", 53 | ] 54 | 55 | pub const regions = [ 56 | "Abruzzo", "Basilicata", "Calabria", "Campania", "Emilia-Romagna", 57 | "Friuli Venezia Giulia", "Lazio", "Liguria", "Lombardia", "Marche", "Molise", 58 | "Piemonte", "Puglia", "Sardegna", "Sicilia", "Toscana", 59 | "Trentino-Alto Adige/Südtirol", "Umbria", "Valle d'Aosta", "Veneto", 60 | ] 61 | 62 | pub type Province { 63 | Province(name: String, code: String) 64 | } 65 | 66 | pub const provinces = [ 67 | Province(name: "Agrigento", code: "AG"), 68 | Province(name: "Alessandria", code: "AL"), 69 | Province(name: "Ancona", code: "AN"), 70 | Province(name: "Aosta", code: "AO"), 71 | Province(name: "Arezzo", code: "AR"), 72 | Province(name: "Ascoli Piceno", code: "AP"), 73 | Province(name: "Asti", code: "AT"), 74 | Province(name: "Avellino", code: "AV"), 75 | Province(name: "Bari", code: "BA"), 76 | Province(name: "Barletta-Andria-Trani", code: "BT"), 77 | Province(name: "Belluno", code: "BL"), 78 | Province(name: "Benevento", code: "BN"), 79 | Province(name: "Bergamo", code: "BG"), 80 | Province(name: "Biella", code: "BI"), 81 | Province(name: "Bologna", code: "BO"), 82 | Province(name: "Bolzano", code: "BZ"), 83 | Province(name: "Brescia", code: "BS"), 84 | Province(name: "Brindisi", code: "BR"), 85 | Province(name: "Cagliari", code: "CA"), 86 | Province(name: "Caltanissetta", code: "CL"), 87 | Province(name: "Campobasso", code: "CB"), 88 | Province(name: "Caserta", code: "CE"), 89 | Province(name: "Catania", code: "CT"), 90 | Province(name: "Catanzaro", code: "CZ"), 91 | Province(name: "Chieti", code: "CH"), 92 | Province(name: "Como", code: "CO"), 93 | Province(name: "Cosenza", code: "CS"), 94 | Province(name: "Cremona", code: "CR"), 95 | Province(name: "Crotone", code: "KR"), 96 | Province(name: "Cuneo", code: "CN"), 97 | Province(name: "Enna", code: "EN"), 98 | Province(name: "Fermo", code: "FM"), 99 | Province(name: "Ferrara", code: "FE"), 100 | Province(name: "Firenze", code: "FI"), 101 | Province(name: "Foggia", code: "FG"), 102 | Province(name: "Forlì-Cesena", code: "FC"), 103 | Province(name: "Frosinone", code: "FR"), 104 | Province(name: "Genova", code: "GE"), 105 | Province(name: "Gorizia", code: "GO"), 106 | Province(name: "Grosseto", code: "GR"), 107 | Province(name: "Imperia", code: "IM"), 108 | Province(name: "Isernia", code: "IS"), 109 | Province(name: "L'Aquila", code: "AQ"), 110 | Province(name: "La Spezia", code: "SP"), 111 | Province(name: "Latina", code: "LT"), 112 | Province(name: "Lecce", code: "LE"), 113 | Province(name: "Lecco", code: "LC"), 114 | Province(name: "Livorno", code: "LI"), 115 | Province(name: "Lodi", code: "LO"), 116 | Province(name: "Lucca", code: "LU"), 117 | Province(name: "Macerata", code: "MC"), 118 | Province(name: "Mantova", code: "MN"), 119 | Province(name: "Massa-Carrara", code: "MS"), 120 | Province(name: "Matera", code: "MT"), 121 | Province(name: "Messina", code: "ME"), 122 | Province(name: "Milano", code: "MI"), 123 | Province(name: "Modena", code: "MO"), 124 | Province(name: "Monza e Brianza", code: "MB"), 125 | Province(name: "Napoli", code: "NA"), 126 | Province(name: "Novara", code: "NO"), 127 | Province(name: "Nuoro", code: "NU"), 128 | Province(name: "Oristano", code: "OR"), 129 | Province(name: "Padova", code: "PD"), 130 | Province(name: "Palermo", code: "PA"), 131 | Province(name: "Parma", code: "PR"), 132 | Province(name: "Pavia", code: "PV"), 133 | Province(name: "Perugia", code: "PG"), 134 | Province(name: "Pesaro e Urbino", code: "PU"), 135 | Province(name: "Pescara", code: "PE"), 136 | Province(name: "Piacenza", code: "PC"), 137 | Province(name: "Pisa", code: "PI"), 138 | Province(name: "Pistoia", code: "PT"), 139 | Province(name: "Pordenone", code: "PN"), 140 | Province(name: "Potenza", code: "PZ"), 141 | Province(name: "Prato", code: "PO"), 142 | Province(name: "Ragusa", code: "RG"), 143 | Province(name: "Ravenna", code: "RA"), 144 | Province(name: "Reggio Calabria", code: "RC"), 145 | Province(name: "Reggio Emilia", code: "RE"), 146 | Province(name: "Rieti", code: "RI"), 147 | Province(name: "Rimini", code: "RN"), 148 | Province(name: "Roma", code: "RM"), 149 | Province(name: "Rovigo", code: "RO"), 150 | Province(name: "Salerno", code: "SA"), 151 | Province(name: "Sassari", code: "SS"), 152 | Province(name: "Savona", code: "SV"), 153 | Province(name: "Siena", code: "SI"), 154 | Province(name: "Siracusa", code: "SR"), 155 | Province(name: "Sondrio", code: "SO"), 156 | Province(name: "Sud Sardegna", code: "SU"), 157 | Province(name: "Taranto", code: "TA"), 158 | Province(name: "Teramo", code: "TE"), 159 | Province(name: "Terni", code: "TR"), 160 | Province(name: "Torino", code: "TO"), 161 | Province(name: "Trapani", code: "TP"), 162 | Province(name: "Trento", code: "TN"), 163 | Province(name: "Treviso", code: "TV"), 164 | Province(name: "Trieste", code: "TS"), 165 | Province(name: "Udine", code: "UD"), 166 | Province(name: "Varese", code: "VA"), 167 | Province(name: "Venezia", code: "VE"), 168 | Province(name: "Verbano-Cusio-Ossola", code: "VB"), 169 | Province(name: "Vercelli", code: "VC"), 170 | Province(name: "Verona", code: "VR"), 171 | Province(name: "Vibo Valentia", code: "VV"), 172 | Province(name: "Vicenza", code: "VI"), 173 | Province(name: "Viterbo", code: "VT"), 174 | ] 175 | 176 | pub type City { 177 | City(name: String, postal_codes: List(String)) 178 | } 179 | 180 | pub const cities = [ 181 | City(name: "Roma", postal_codes: ["00100", "00121", "00135"]), 182 | City(name: "Milano", postal_codes: ["20121", "20122", "20123"]), 183 | City(name: "Napoli", postal_codes: ["80121", "80122", "80123"]), 184 | City(name: "Torino", postal_codes: ["10121", "10122", "10123"]), 185 | City(name: "Firenze", postal_codes: ["50121", "50122", "50123"]), 186 | City(name: "Bologna", postal_codes: ["40121", "40122", "40123"]), 187 | City(name: "Venezia", postal_codes: ["30121", "30122", "30123"]), 188 | City(name: "Palermo", postal_codes: ["90121", "90122", "90123"]), 189 | City(name: "Genova", postal_codes: ["16121", "16122", "16123"]), 190 | City(name: "Bari", postal_codes: ["70121", "70122", "70123"]), 191 | City(name: "Verona", postal_codes: ["37121", "37122", "37123"]), 192 | City(name: "Trieste", postal_codes: ["34121", "34122", "34123"]), 193 | City(name: "Catania", postal_codes: ["95121", "95122", "95123"]), 194 | City(name: "Perugia", postal_codes: ["06121", "06122", "06123"]), 195 | City(name: "Salerno", postal_codes: ["84121", "84122", "84123"]), 196 | ] 197 | 198 | pub const streets = [ 199 | "Roma", "Corso Vittorio Emanuele II", "Garibaldi", "Dante Alighieri", 200 | "Giuseppe Mazzini", "Leonardo da Vinci", "Giacomo Matteotti", 201 | "Guglielmo Marconi", "Corso Garibaldi", "Cesare Battisti", "Aldo Moro", 202 | "San Francesco", "Europa", "Umberto I", "Vittorio Veneto", "Don Luigi Sturzo", 203 | "Alessandro Volta", "Benedetto Croce", "Cavour", "Galileo Galilei", 204 | "Carlo Alberto", "Giovanni XXIII", "San Giuseppe", "Francesco Petrarca", 205 | "Corso Italia", "Tiziano Vecellio", "Luigi Einaudi", "Cristoforo Colombo", 206 | "San Lorenzo", "Michelangelo Buonarroti", "Regina Margherita", "Aurelia", 207 | "San Giovanni Bosco", "Antonio Gramsci", "Paolo Sarpi", "Gaetano Donizetti", 208 | ] 209 | 210 | pub const directions = [ 211 | "Nord", "Est", "Sud", "Ovest", "Nordest", "Nordovest", "Sudest", "Sudovest", 212 | ] 213 | 214 | pub const direction_codes = ["N", "E", "S", "O", "NE", "NO", "SE", "SO"] 215 | 216 | pub const time_zones = [ 217 | "Africa/Algeri", "Africa/Il Cairo", "Africa/Casablanca", "Africa/Harare", 218 | "Africa/Johannesburg", "Africa/Monrovia", "Africa/Nairobi", 219 | "America/Argentina/Buenos_Aires", "America/Bogotà", "America/Caracas", 220 | "America/Chicago", "America/Chihuahua", "America/Denver", "America/Godthab", 221 | "America/Guatemala", "America/Guyana", "America/Halifax", 222 | "America/Indiana/Indianapolis", "America/Juneau", "America/La_Paz", 223 | "America/Lima", "America/Los_Angeles", "America/Mazatlan", 224 | "America/Città_del_Messico", "America/Monterrey", "America/New_York", 225 | "America/Phoenix", "America/Regina", "America/Santiago", "America/San_Paolo", 226 | "America/St_Johns", "America/Tijuana", "Asia/Almaty", "Asia/Baghdad", 227 | "Asia/Baku", "Asia/Bangkok", "Asia/Chongqing", "Asia/Colombo", "Asia/Dacca", 228 | "Asia/Hong_Kong", "Asia/Irkutsk", "Asia/Giacarta", "Asia/Gerusalemme", 229 | "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", 230 | "Asia/Calcutta", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuwait", 231 | "Asia/Magadan", "Asia/Muscat", "Asia/Novosibirsk", "Asia/Rangoon", 232 | "Asia/Riyad", "Asia/Seul", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", 233 | "Asia/Tashkent", "Asia/Tbilisi", "Asia/Teheran", "Asia/Tokyo", 234 | "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Vladivostok", "Asia/Yakutsk", 235 | "Asia/Ekaterinburg", "Asia/Yerevan", "Atlantico/Azzorre", 236 | "Atlantico/Capo_Verde", "Atlantico/Sud_Georgia", "Australia/Adelaide", 237 | "Australia/Brisbane", "Australia/Darwin", "Australia/Hobart", 238 | "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Etc/UTC", 239 | "Europa/Amsterdam", "Europa/Atene", "Europa/Belgrado", "Europa/Berlino", 240 | "Europa/Bratislava", "Europa/Bruxelles", "Europa/Bucarest", "Europa/Budapest", 241 | "Europa/Copenaghen", "Europa/Dublino", "Europa/Helsinki", "Europa/Istanbul", 242 | "Europa/Kiev", "Europa/Lisbona", "Europa/Lubiana", "Europa/Londra", 243 | "Europa/Madrid", "Europa/Minsk", "Europa/Mosca", "Europa/Parigi", 244 | "Europa/Praga", "Europa/Riga", "Europa/Roma", "Europa/Sarajevo", 245 | "Europa/Skopje", "Europa/Sofia", "Europa/Stoccolma", "Europa/Tallinn", 246 | "Europa/Vienna", "Europa/Vilnius", "Europa/Varsavia", "Europa/Zagabria", 247 | "Pacifico/Apia", "Pacifico/Auckland", "Pacifico/Fakaofo", "Pacifico/Figi", 248 | "Pacifico/Guam", "Pacifico/Honolulu", "Pacifico/Majuro", "Pacifico/Midway", 249 | "Pacifico/Noumea", "Pacifico/Pago_Pago", "Pacifico/Port_Moresby", 250 | "Pacifico/Tongatapu", 251 | ] 252 | -------------------------------------------------------------------------------- /src/blah/locales/it/finance.gleam: -------------------------------------------------------------------------------- 1 | pub const currencies = [ 2 | #("Afghano afghano", "AFN", "؋"), #("Dram armeno", "AMD", "֏"), 3 | #("Lek albanese", "ALL", "Lek"), #("Fiorino di Curaçao", "ANG", "ƒ"), 4 | #("Peso argentino", "ARS", "$"), #("Dollaro australiano", "AUD", "$"), 5 | #("Fiorino di Aruba", "AWG", "ƒ"), #("Manat azero", "AZN", "₼"), 6 | #("Marco convertibile bosniaco", "BAM", "KM"), 7 | #("Dollaro barbadian", "BBD", "$"), #("Taka del Bangladesh", "BDT", "৳"), 8 | #("Lev bulgaro", "BGN", "лв"), #("Dollaro delle Bermuda", "BMD", "$"), 9 | #("Dollaro del Brunei", "BND", "$"), #("Boliviano boliviano", "BOB", "$b"), 10 | #("Real brasiliano", "BRL", "R$"), #("Dollaro delle Bahamas", "BSD", "$"), 11 | #("Pula botswano", "BWP", "P"), #("Rublo bielorusso", "BYN", "Br"), 12 | #("Dollaro del Belize", "BZD", "BZ$"), #("Dollaro canadese", "CAD", "$"), 13 | #("Franco svizzero", "CHF", "CHF"), #("Peso cileno", "CLP", "$"), 14 | #("Yuan renminbi cinese", "CNY", "¥"), #("Peso colombiano", "COP", "$"), 15 | #("Colón costaricano", "CRC", "₡"), #("Peso cubano", "CUP", "₱"), 16 | #("Corona ceca", "CZK", "Kč"), #("Corona danese", "DKK", "kr"), 17 | #("Peso dominicano", "DOP", "RD$"), #("Lira egiziana", "EGP", "£"), 18 | #("Euro della zona euro", "EUR", "€"), #("Dollaro delle Fiji", "FJD", "$"), 19 | #("Sterlina delle Falkland", "FKP", "£"), #("Sterlina britannica", "GBP", "£"), 20 | #("Lari georgiano", "GEL", "₾"), #("Sterlina di Guernsey", "GGP", "£"), 21 | #("Cedi ghanese", "GHS", "₵"), #("Sterlina di Gibilterra", "GIP", "£"), 22 | #("Quetzal guatemalteco", "GTQ", "Q"), #("Dollaro guyanese", "GYD", "$"), 23 | #("Dollaro di Hong Kong", "HKD", "$"), #("Lempira honduregno", "HNL", "L"), 24 | #("Kuna croata", "HRK", "kn"), #("Fiorino ungherese", "HUF", "Ft"), 25 | #("Rupiah indonesiana", "IDR", "Rp"), #("Shekel israeliano", "ILS", "₪"), 26 | #("Sterlina dell'Isola di Man", "IMP", "£"), #("Rupia indiana", "INR", "₹"), 27 | #("Rial iraniano", "IRR", "﷼"), #("Corona islandese", "ISK", "kr"), 28 | #("Sterlina di Jersey", "JEP", "£"), #("Dollaro giamaicano", "JMD", "J$"), 29 | #("Yen giapponese", "JPY", "¥"), #("Som kirghiso", "KGS", "с"), 30 | #("Riel cambogiano", "KHR", "៛"), #("Won nordcoreano", "KPW", "₩"), 31 | #("Won sudcoreano", "KRW", "₩"), #("Dollaro delle Isole Cayman", "KYD", "$"), 32 | #("Tenge kazako", "KZT", "₸"), #("Kip laotiano", "LAK", "₭"), 33 | #("Lira libanese", "LBP", "£"), #("Rupia dello Sri Lanka", "LKR", "₨"), 34 | #("Dollaro liberiano", "LRD", "$"), #("Denar macedone", "MKD", "ден"), 35 | #("Tugrik mongolo", "MNT", "₮"), #("Rupia mauriziana", "MUR", "₨"), 36 | #("Peso messicano", "MXN", "$"), #("Ringgit malese", "MYR", "RM"), 37 | #("Metical mozambicano", "MZN", "MT"), #("Dollaro namibiano", "NAD", "$"), 38 | #("Naira nigeriana", "NGN", "₦"), #("Cordoba oro nicaraguense", "NIO", "C$"), 39 | #("Corona norvegese", "NOK", "kr"), #("Rupia nepalese", "NPR", "₨"), 40 | #("Dollaro neozelandese", "NZD", "$"), #("Rial omanese", "OMR", "﷼"), 41 | #("Balboa panamense", "PAB", "B/."), #("Sol peruviano", "PEN", "S/."), 42 | #("Peso filippino", "PHP", "₱"), #("Rupia pachistana", "PKR", "₨"), 43 | #("Zloty polacco", "PLN", "zł"), #("Guarani paraguayano", "PYG", "₲"), 44 | #("Riyal qatari", "QAR", "﷼"), #("Leu rumeno", "RON", "lei"), 45 | #("Dinar serbo", "RSD", "Дин."), #("Rublo russo", "RUB", "₽"), 46 | #("Riyal saudita", "SAR", "﷼"), #("Dollaro delle Isole Salomone", "SBD", "$"), 47 | #("Rupia delle Seychelles", "SCR", "₨"), #("Corona svedese", "SEK", "kr"), 48 | #("Dollaro di Singapore", "SGD", "$"), #("Sterlina di Sant'Elena", "SHP", "£"), 49 | #("Scellino somalo", "SOS", "S"), #("Dollaro surinamese", "SRD", "$"), 50 | #("Dollaro salvadoregno", "SVC", "$"), #("Sterlina siriana", "SYP", "£"), 51 | #("Baht thailandese", "THB", "฿"), #("Lira turca", "TRY", "₺"), 52 | #("Dollaro di Trinidad e Tobago", "TTD", "TT$"), 53 | #("Dollaro tuvaluano", "TVD", "$"), #("Nuovo Dollaro taiwanese", "TWD", "NT$"), 54 | #("Grivna ucraina", "UAH", "₴"), #("Dollaro statunitense", "USD", "$"), 55 | #("Peso uruguaiano", "UYU", "$U"), #("Som uzbeko", "UZS", "лв"), 56 | #("Bolívar venezuelano", "VEF", "Bs"), #("Dong vietnamita", "VND", "₫"), 57 | #("Dollaro dei Caraibi orientali", "XCD", "$"), #("Rial yemenita", "YER", "﷼"), 58 | #("Rand sudafricano", "ZAR", "R"), #("Dollaro dello Zimbabwe", "ZWD", "Z$"), 59 | ] 60 | -------------------------------------------------------------------------------- /src/blah/locales/it/lorem.gleam: -------------------------------------------------------------------------------- 1 | pub const words = [ 2 | "a", "ab", "abbas", "abduco", "abeo", "abscido", "absconditus", "absens", 3 | "absorbeo", "absque", "abstergo", "absum", "abundans", "abutor", "accedo", 4 | "accendo", "acceptus", "accipio", "accommodo", "accusamus", "accusantium", 5 | "accusator", "acer", "acerbitas", "acervus", "acidus", "acies", "acquiro", 6 | "acsi", "ad", "adamo", "adaugeo", "addo", "adduco", "ademptio", "adeo", 7 | "adeptio", "adfectus", "adfero", "adficio", "adflicto", "adhaero", "adhuc", 8 | "adicio", "adimpleo", "adinventitias", "adipisci", "adipiscor", "adiuvo", 9 | "administratio", "admiratio", "admitto", "admoneo", "admoveo", "adnuo", 10 | "adopto", "adsidue", "adstringo", "adsuesco", "adsum", "adulatio", 11 | "adulescens", "adultus", "aduro", "advenio", "adversus", "advoco", 12 | "aedificium", "aeger", "aegre", "aegrotatio", "aegrus", "aeneus", "aequitas", 13 | "aequus", "aer", "aestas", "aestivus", "aestus", "aetas", "aeternus", "ager", 14 | "aggero", "aggredior", "agnitio", "agnosco", "ago", "ait", "aiunt", "alias", 15 | "alienus", "alii", "alioqui", "aliqua", "aliquam", "aliquid", "alius", 16 | "allatus", "alo", "alter", "altus", "alveus", "amaritudo", "ambitus", "ambulo", 17 | "amet", "amicitia", "amiculum", "amissio", "amita", "amitto", "amo", "amor", 18 | "amoveo", "amplexus", "amplitudo", "amplus", "ancilla", "angelus", "angulus", 19 | "angustus", "animadverto", "animi", "animus", "annus", "anser", "ante", 20 | "antea", "antepono", "antiquus", "aperiam", "aperio", "aperte", "apostolus", 21 | "apparatus", "appello", "appono", "appositus", "approbo", "apto", "aptus", 22 | "apud", "aqua", "ara", "aranea", "arbitro", "arbor", "arbustum", "arca", 23 | "arceo", "arcesso", "architecto", "arcus", "argentum", "argumentum", "arguo", 24 | "arma", "armarium", "armo", "aro", "ars", "articulus", "artificiose", "arto", 25 | "arx", "ascisco", "ascit", "asper", "asperiores", "aspernatur", "aspicio", 26 | "asporto", "assentator", "assumenda", "astrum", "at", "atavus", "ater", 27 | "atque", "atqui", "atrocitas", "atrox", "attero", "attollo", "attonbitus", 28 | "auctor", "auctus", "audacia", "audax", "audentia", "audeo", "audio", 29 | "auditor", "aufero", "aureus", "auris", "aurum", "aut", "autem", "autus", 30 | "auxilium", "avaritia", "avarus", "aveho", "averto", "avoco", "baiulus", 31 | "balbus", "barba", "bardus", "basium", "beatae", "beatus", "bellicus", 32 | "bellum", "bene", "beneficium", "benevolentia", "benigne", "bestia", "bibo", 33 | "bis", "blandior", "blanditiis", "bonus", "bos", "brevis", "cado", "caecus", 34 | "caelestis", "caelum", "calamitas", "calcar", "calco", "calculus", "callide", 35 | "campana", "candidus", "canis", "canonicus", "canto", "capillus", "capio", 36 | "capitulus", "capto", "caput", "carbo", "carcer", "careo", "caries", 37 | "cariosus", "caritas", "carmen", "carpo", "carus", "casso", "caste", "casus", 38 | "catena", "caterva", "cattus", "cauda", "causa", "caute", "caveo", "cavus", 39 | "cedo", "celebrer", "celer", "celo", "cena", "cenaculum", "ceno", "censura", 40 | "centum", "cerno", "cernuus", "certe", "certo", "certus", "cervus", "cetera", 41 | "charisma", "chirographum", "cibo", "cibus", "cicuta", "cilicium", 42 | "cimentarius", "ciminatio", "cinis", "circumvenio", "cito", "civis", "civitas", 43 | "clam", "clamo", "claro", "clarus", "claudeo", "claustrum", "clementia", 44 | "clibanus", "coadunatio", "coaegresco", "coepi", "coerceo", "cogito", 45 | "cognatus", "cognomen", "cogo", "cohaero", "cohibeo", "cohors", "colligo", 46 | "colloco", "collum", "colo", "color", "coma", "combibo", "comburo", "comedo", 47 | "comes", "cometes", "comis", "comitatus", "commemoro", "comminor", "commodi", 48 | "commodo", "communis", "comparo", "compello", "complectus", "compono", 49 | "comprehendo", "comptus", "conatus", "concedo", "concido", "conculco", 50 | "condico", "conduco", "confero", "confido", "conforto", "confugo", 51 | "congregatio", "conicio", "coniecto", "conitor", "coniuratio", "conor", 52 | "conqueror", "conscendo", "consectetur", "consequatur", "consequuntur", 53 | "conservo", "considero", "conspergo", "constans", "consuasor", "contabesco", 54 | "contego", "contigo", "contra", "conturbo", "conventus", "convoco", "copia", 55 | "copiose", "cornu", "corona", "corporis", "corpus", "correptius", "corrigo", 56 | "corroboro", "corrumpo", "corrupti", "coruscus", "cotidie", "crapula", "cras", 57 | "crastinus", "creator", "creber", "crebro", "credo", "creo", "creptio", 58 | "crepusculum", "cresco", "creta", "cribro", "crinis", "cruciamentum", 59 | "crudelis", "cruentus", "crur", "crustulum", "crux", "cubicularis", "cubitum", 60 | "cubo", "cui", "cuius", "culpa", "culpo", "cultellus", "cultura", "cum", 61 | "cumque", "cunabula", "cunae", "cunctatio", "cupiditas", "cupiditate", "cupio", 62 | "cuppedia", "cupressus", "cur", "cura", "curatio", "curia", "curiositas", 63 | "curis", "curo", "curriculum", "currus", "cursim", "curso", "cursus", "curto", 64 | "curtus", "curvo", "curvus", "custodia", "damnatio", "damno", "dapifer", 65 | "debeo", "debilito", "debitis", "decens", "decerno", "decet", "decimus", 66 | "decipio", "decor", "decretum", "decumbo", "dedecor", "dedico", "deduco", 67 | "defaeco", "defendo", "defero", "defessus", "defetiscor", "deficio", "defigo", 68 | "defleo", "defluo", "defungo", "degenero", "degero", "degusto", "deinde", 69 | "delectatio", "delectus", "delego", "deleniti", "deleo", "delibero", 70 | "delicate", "delinquo", "deludo", "demens", "demergo", "demitto", "demo", 71 | "demonstro", "demoror", "demulceo", "demum", "denego", "denique", "dens", 72 | "denuncio", "denuo", "deorsum", "depereo", "depono", "depopulo", "deporto", 73 | "depraedor", "deprecator", "deprimo", "depromo", "depulso", "deputo", 74 | "derelinquo", "derideo", "deripio", "deserunt", "desidero", "desino", 75 | "desipio", "desolo", "desparatus", "despecto", "despirmatio", "dicta", 76 | "dignissimos", "distinctio", "dolor", "dolore", "dolorem", "doloremque", 77 | "dolores", "doloribus", "dolorum", "ducimus", "ea", "eaque", "earum", "eius", 78 | "eligendi", "enim", "eos", "error", "esse", "est", "et", "eum", "eveniet", 79 | "ex", "excepturi", "exercitationem", "expedita", "explicabo", "facere", 80 | "facilis", "fuga", "fugiat", "fugit", "harum", "hic", "id", "illo", "illum", 81 | "impedit", "in", "incidunt", "infit", "inflammatio", "inventore", "ipsa", 82 | "ipsam", "ipsum", "iste", "itaque", "iure", "iusto", "labore", "laboriosam", 83 | "laborum", "laudantium", "libero", "magnam", "magni", "maiores", "maxime", 84 | "minima", "minus", "modi", "molestiae", "molestias", "mollitia", "nam", 85 | "natus", "necessitatibus", "nemo", "neque", "nesciunt", "nihil", "nisi", 86 | "nobis", "non", "nostrum", "nulla", "numquam", "occaecati", "ocer", "odio", 87 | "odit", "officia", "officiis", "omnis", "optio", "paens", "pariatur", "patior", 88 | "patria", "patrocinor", "patruus", "pauci", "paulatim", "pauper", "pax", 89 | "peccatus", "pecco", "pecto", "pectus", "pecunia", "pecus", "peior", "pel", 90 | "perferendis", "perspiciatis", "placeat", "porro", "possimus", "praesentium", 91 | "provident", "quae", "quaerat", "quam", "quas", "quasi", "qui", "quia", 92 | "quibusdam", "quidem", "quis", "quisquam", "quo", "quod", "quos", "ratione", 93 | "recusandae", "reiciendis", "rem", "repellat", "repellendus", "reprehenderit", 94 | "repudiandae", "rerum", "saepe", "sapiente", "sed", "sequi", "similique", 95 | "sint", "sit", "socius", "sodalitas", "sol", "soleo", "solio", "solitudo", 96 | "solium", "sollers", "sollicito", "solum", "solus", "soluta", "solutio", 97 | "solvo", "somniculosus", "somnus", "sonitus", "sono", "sophismata", "sopor", 98 | "sordeo", "sortitus", "spargo", "speciosus", "spectaculum", "speculum", 99 | "sperno", "spero", "spes", "spiculum", "spiritus", "spoliatio", "sponte", 100 | "stabilis", "statim", "statua", "stella", "stillicidium", "stipes", "stips", 101 | "sto", "strenuus", "strues", "studio", "stultus", "suadeo", "suasoria", "sub", 102 | "subito", "subiungo", "sublime", "subnecto", "subseco", "substantia", 103 | "subvenio", "succedo", "succurro", "sufficio", "suffoco", "suffragium", 104 | "suggero", "sui", "sulum", "sum", "summa", "summisse", "summopere", "sumo", 105 | "sumptus", "sunt", "supellex", "super", "suppellex", "supplanto", "suppono", 106 | "supra", "surculus", "surgo", "sursum", "suscipio", "suscipit", "suspendo", 107 | "sustineo", "suus", "synagoga", "tabella", "tabernus", "tabesco", "tabgo", 108 | "tabula", "taceo", "tactus", "taedium", "talio", "talis", "talus", "tam", 109 | "tamdiu", "tamen", "tametsi", "tamisium", "tamquam", "tandem", "tantillus", 110 | "tantum", "tardus", "tego", "temeritas", "temperantia", "templum", "tempora", 111 | "tempore", "temporibus", "temptatio", "tempus", "tenax", "tendo", "teneo", 112 | "tener", "tenetur", "tenuis", "tenus", "tepesco", "tepidus", "ter", "terebro", 113 | "teres", "terga", "tergeo", "tergiversatio", "tergo", "tergum", "termes", 114 | "terminatio", "tero", "terra", "terreo", "territo", "terror", "tersus", 115 | "tertius", "testimonium", "texo", "textilis", "textor", "textus", 116 | "thalassinus", "theatrum", "theca", "thema", "theologus", "thermae", 117 | "thesaurus", "thesis", "thorax", "thymbra", "thymum", "tibi", "timidus", 118 | "timor", "titulus", "tolero", "tollo", "tondeo", "tonsor", "torqueo", 119 | "torrens", "tot", "totam", "totidem", "toties", "totus", "tracto", "trado", 120 | "traho", "trans", "tredecim", "tremo", "trepide", "tres", "tribuo", 121 | "tricesimus", "triduana", "triginta", "tripudio", "tristis", "triumphus", 122 | "trucido", "truculenter", "tubineus", "tui", "tum", "tumultus", "tunc", 123 | "turba", "turbo", "turpe", "turpis", "tutamen", "tutis", "tyrannus", 124 | "uberrime", "ubi", "ulciscor", "ullam", "ullus", "ulterius", "ultio", "ultra", 125 | "umbra", "umerus", "umquam", "una", "unde", "undique", "universe", "unus", 126 | "urbanus", "urbs", "uredo", "usitas", "usque", "ustilo", "ustulo", "usus", 127 | "ut", "uter", "uterque", "utilis", "utique", "utor", "utpote", "utrimque", 128 | "utroque", "utrum", "uxor", "vaco", "vacuus", "vado", "vae", "valde", "valens", 129 | "valeo", "valetudo", "validus", "vallum", "vapulus", "varietas", "varius", 130 | "vehemens", "vel", "velit", "velociter", "velum", "velut", "venia", "veniam", 131 | "venio", "ventito", "ventosus", "ventus", "venustas", "ver", "verbera", 132 | "verbum", "vere", "verecundia", "vereor", "vergo", "veritas", "veritatis", 133 | "vero", "versus", "verto", "verumtamen", "verus", "vesco", "vesica", "vesper", 134 | "vespillo", "vester", "vestigium", "vestrum", "vetus", "via", "vicinus", 135 | "vicissitudo", "victoria", "victus", "videlicet", "video", "viduata", "viduo", 136 | "vigilo", "vigor", "vilicus", "vilis", "vilitas", "villa", "vinco", "vinculum", 137 | "vindico", "vinitor", "vinum", "vir", "virga", "virgo", "viridis", "viriliter", 138 | "virtus", "vis", "viscus", "vita", "vitae", "vitiosus", "vitium", "vito", 139 | "vivo", "vix", "vobis", "vociferor", "voco", "volaticus", "volo", "volubilis", 140 | "voluntarius", "volup", "voluptas", "voluptate", "voluptatem", "voluptates", 141 | "voluptatibus", "voluptatum", "volutabrum", "volva", "vomer", "vomica", 142 | "vomito", "vorago", "vorax", "voro", "vos", "votum", "voveo", "vox", 143 | "vulariter", "vulgaris", "vulgivagus", "vulgo", "vulgus", "vulnero", "vulnus", 144 | "vulpes", "vulticulus", "vultuosus", "xiphias", 145 | ] 146 | -------------------------------------------------------------------------------- /src/blah/locales/it/name.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | 3 | pub const female_first_names = [ 4 | "Adele", "Adriana", "Agata", "Agnese", "Alba", "Alessandra", "Alice", "Amalia", 5 | "Amelia", "Angela", "Angelica", "Anna", "Arianna", "Asia", "Aurora", 6 | "Beatrice", "Benedetta", "Bianca", "Brigida", "Camilla", "Carla", "Carlotta", 7 | "Caterina", "Celeste", "Chiara", "Claudia", "Clarissa", "Clara", "Concetta", 8 | "Daniela", "Diana", "Donatella", "Emanuela", "Elena", "Eleonora", "Ester", 9 | "Emma", "Evelina", "Flavia", "Franca", "Francesca", "Gabriella", "Gaia", 10 | "Ginevra", "Giovanna", "Giulia", "Ilaria", "Irene", "Isabella", "Laila", 11 | "Laura", "Leandra", "Leonarda", "Letizia", "Luisa", "Ludovica", "Maddalena", 12 | "Magda", "Malvina", "Maria", "Mariangela", "Marina", "Martina", "Matilde", 13 | "Michela", "Miriam", "Nadia", "Natalia", "Noemi", "Nicole", "Ofelia", "Paola", 14 | "Patrizia", "Raffaella", "Rachele", "Renata", "Rita", "Rosa", "Rosalia", 15 | "Rosamaria", "Sara", "Serena", "Silvia", "Simona", "Sonia", "Tamara", 16 | "Tatiana", "Teresa", "Tiziana", "Valentina", "Valeria", "Vanessa", "Vera", 17 | "Vittoria", "Zaira", "Zoe", "Grazia", "Margherita", "Rosaura", "Cinzia", 18 | "Federica", "Giuseppina", "Milena", "Alessia", "Romina", "Gilda", "Irene", 19 | "Selena", "Elisa", "Carmela", "Lorena", "Mariella", "Gilda", "Ingrid", "Elda", 20 | "Marta", "Dora", "Vera", "Lea", "Elena", "Serena", "Adele", "Fiorella", "Rita", 21 | "Cristina", "Caterina", 22 | ] 23 | 24 | pub const male_first_names = [ 25 | "Aldo", "Alessandro", "Alessio", "Alfredo", "Andrea", "Angelo", "Antonio", 26 | "Armando", "Benito", "Benedetto", "Bruno", "Carlo", "Cesare", "Christian", 27 | "Claudio", "Corrado", "Cristiano", "Daniele", "Davide", "Domenico", "Donato", 28 | "Dario", "Edoardo", "Emiliano", "Enrico", "Fabio", "Fabrizio", "Federico", 29 | "Filippo", "Francesco", "Franco", "Gabriele", "Gaetano", "Gianluca", 30 | "Gianmarco", "Gianpaolo", "Gianni", "Giuseppe", "Giovanni", "Giuliano", 31 | "Gregorio", "Guido", "Ivan", "Jacopo", "Javier", "Luca", "Luigi", "Marco", 32 | "Mario", "Matteo", "Maurizio", "Michele", "Michele", "Nicolò", "Nicola", 33 | "Nunzio", "Paolo", "Pasquale", "Pietro", "Raffaele", "Raul", "Rinaldo", 34 | "Roberto", "Rocco", "Romeo", "Sandro", "Saverio", "Sebastiano", "Simone", 35 | "Stefano", "Tommaso", "Valerio", "Vincenzo", "Vittorio", "Alessandro", "Amato", 36 | "Amedeo", "Ariosto", "Arnaldo", "Beppe", "Biagio", "Bruno", "Carlo", "Cesare", 37 | "Ciro", "Dante", "Domenico", "Emanuele", "Enzo", "Ernesto", "Fedele", "Felice", 38 | "Gabriele", "Gianluigi", "Gianvito", "Giulio", "Guido", "Lorenzo", "Mauro", 39 | "Maurizio", "Nino", "Pietro", "Raimondo", "Rodolfo", "Salvatore", "Silvano", 40 | "Tiziano", "Ugo", "Vittorio", "Walter", "Wilmer", "Zeno", "Aurelio", "Carlo", 41 | "Clemente", "Domenico", "Ettore", "Fabio", "Ferdinando", "Ferruccio", "Gino", 42 | "Giovanni", "Ivo", "Luca", "Marcello", "Mauro", "Nicodemo", "Ruggero", 43 | "Sergio", "Tullio", "Vincenzo", "Walter", "Antonio", "Beppe", "Gerardo", 44 | ] 45 | 46 | pub const last_names = [ 47 | "Abate", "Abbruzzese", "Accardi", "Aceto", "Adamo", "Agosti", "Alberti", 48 | "Alessi", "Amato", "Andriano", "Angelo", "Antonelli", "Arcuri", "Arena", 49 | "Argento", "Aureli", "Avellino", "Bacci", "Baldini", "Balli", "Barbieri", 50 | "Barone", "Bartoli", "Basile", "Battaglia", "Bellini", "Benassi", "Bianchi", 51 | "Bifulco", "Biondi", "Borgatti", "Bosco", "Bruni", "Bruno", "Buscemi", 52 | "Caiati", "Calabrese", "Calvi", "Camilleri", "Campana", "Caputo", "Cardillo", 53 | "Caruso", "Casali", "Casei", "Castelli", "Catalano", "Cavallaro", "Cecchetti", 54 | "Ceci", "Cervantes", "Chiodo", "Cioffi", "Colombo", "Colucci", "Comi", 55 | "Conforti", "Conti", "Corbelli", "Cornelli", "Corsini", "Costa", "Costantini", 56 | "Coviello", "Crisafulli", "D'Amico", "D'Angelo", "D'Antoni", "D'Auria", 57 | "D'Alessandro", "D'Amato", "D'Ascenzo", "D'Elia", "D'Errico", "De Angelis", 58 | "De Biasi", "De Luca", "De Marchi", "De Muro", "De Santis", "De Stefano", 59 | "Dell'Acqua", "Dell'Orto", "Della Valle", "Di Carlo", "Di Giacomo", "Di Marco", 60 | "Di Mauro", "Di Napoli", "Di Pietro", "Di Stefano", "Doria", "Esposito", 61 | "Fabbri", "Fagioli", "Falcone", "Fava", "Fedele", "Ferrari", "Ferraro", 62 | "Fiorini", "Fiorito", "Fregona", "Frigerio", "Furlan", "Galli", "Galvani", 63 | "Gambino", "Gargano", "Gatti", "Gelsomini", "Gianotti", "Giberti", "Giordano", 64 | "Giuliani", "Giuntoli", "Giuseppe", "Gori", "Grosso", "Guerrini", "Iacono", 65 | "Ianni", "Imparato", "Inglese", "Isgrò", "Landi", "Lanzillotta", "Lanza", 66 | "La Bella", "Lupi", "Lupinacci", "Maggi", "Magnani", "Manfredi", "Marchetti", 67 | "Marini", "Martini", "Martorana", "Mauro", "Mazzoni", "Meloni", "Menichetti", 68 | "Messina", "Migliori", "Monti", "Morrone", "Motta", "Nardi", "Napoli", "Nero", 69 | "Nicolai", "Nicolosi", "Orlando", "Palermo", "Palladino", "Pannone", "Parisi", 70 | "Pastore", "Pellegrino", "Pennisi", "Peruzzi", "Pizzi", "Platania", "Pollina", 71 | "Porta", "Pugliese", "Quaranta", "Raimondi", "Rizzo", "Rocca", "Rossi", 72 | "Russo", "Sacco", "Salerno", "Sangiorgio", "Santoro", "Saraceno", "Sartori", 73 | "Scali", "Scarfone", "Schiavone", "Scola", "Serrano", "Serra", "Siciliano", 74 | "Simonetti", "Sinisi", "Sironi", "Sorrentino", "Spagnolo", "Spera", "Spinelli", 75 | "Sposato", "Stella", "Stefano", "Tarantino", "Tartaglia", "Tassinari", 76 | "Tavernelli", "Tedesco", "Tiziano", "Togni", "Torre", "Torres", "Tortora", 77 | "Totaro", "Tronca", "Troiano", "Tudisco", "Valenti", "Valentino", "Vallone", 78 | "Vanzetti", "Varriale", "Vatti", "Vecchia", "Vezzoli", "Vitiello", "Vittorio", 79 | "Volpe", "Zanetti", "Zarrelli", "Zerbini", "Zingari", "Zito", 80 | ] 81 | 82 | pub fn first_names() { 83 | list.flatten([male_first_names, female_first_names]) 84 | } 85 | -------------------------------------------------------------------------------- /src/blah/locales/it/word.gleam: -------------------------------------------------------------------------------- 1 | pub const verbs = [ 2 | "abbandonare", "abbassare", "abbinare", "abdicare", "abituare", "abbracciare", 3 | "abbreviare", "abbonare", "abbuiare", "abdicare", "abituare", "accadere", 4 | "accettare", "accompagnare", "accorgersi", "accumulare", "acquistare", 5 | "adattare", "addivenire", "addormentarsi", "addossare", "adescare", 6 | "affermare", "affrettare", "aggiornare", "aggiungere", "aggredire", "allenare", 7 | "allentare", "allontanare", "alzare", "amare", "ammettere", "annunciare", 8 | "apprezzare", "arrivare", "ascoltare", "aspettare", "assistere", "assumere", 9 | "attendere", "attraversare", "avere", "avvisare", "bagnare", "bastare", 10 | "battere", "bere", "bilanciare", "bloccate", "bollire", "brillare", "cambiare", 11 | "camminare", "cancellare", "capire", "cercare", "chiamare", "chiudere", 12 | "cominciare", "comprare", "conoscere", "consegnare", "consumare", 13 | "controllare", "continuare", "coprire", "correre", "crescere", "decidere", 14 | "dedicare", "dimenticare", "dirigere", "diventare", "dipingere", "dire", 15 | "dormire", "durare", "eseguire", "essere", "faticare", "fare", "finire", 16 | "fuggire", "giocare", "giudicare", "guardare", "incontrare", "incoraggiare", 17 | "indicare", "infettare", "informare", "invitare", "lavorare", "leggere", 18 | "liberare", "lanciare", "mandare", "mangiare", "marcare", "mettere", 19 | "migliorare", "minacciare", "mordere", "morire", "mostrare", "muovere", 20 | "nascere", "necessitare", "negare", "nominare", "nuotare", "obbedire", 21 | "occuparsi", "offrire", "ordinare", "parlare", "partire", "pensare", "perdere", 22 | "pianificare", "picchiare", "portare", "prendere", "preparare", "provare", 23 | "purtare", "raggiungere", "rallegrarsi", "rendere", "restare", "rispondere", 24 | "rompere", "salutare", "sapere", "sbrigare", "scoprire", "scrivere", 25 | "segnalare", "sentire", "servire", "soggiornare", "sollevare", "spiegare", 26 | "spingere", "stare", "studiare", "subire", "succedere", "tacere", "telefonare", 27 | "terminare", "trovare", "uscire", "vedere", "venire", "vivere", "voltare", 28 | "volere", "zittire", "zombare", "accettare", "accendere", "accettare", 29 | "apprendere", "arrivare", "assaporare", "assolutizzare", "avvicinare", 30 | "bagnare", "bruciare", "calcolare", "chiarire", "colpire", "completare", 31 | "conoscere", "costruire", "creare", "decidere", "deludere", "differenziare", 32 | "dirigere", "documentare", "emergere", "esaltare", "esperimentare", "formare", 33 | "fornire", "giudicare", "leggere", "meritare", "mettere", "nominare", 34 | "occupare", "parlare", "passare", "pedinare", "pianificare", "ripetere", 35 | "selezionare", "simulare", "sostituire", "studiare", "trattare", "utilizzare", 36 | "verificare", "votare", 37 | ] 38 | 39 | pub const nouns = [ 40 | "abaco", "abate", "abbazia", "abbondanza", "abbreviazione", "abdomen", 41 | "abilità", "abnormalità", "abolizione", "aborto", "abrogazione", "accademia", 42 | "accademico", "accelerante", "acceleratore", "accento", "accettazione", 43 | "accesso", "accessorio", "accordo", "accordanza", "accordion", 44 | "accompagnatore", "acquisizione", "acido", "acustica", "adulto", "adolescenza", 45 | "adozione", "adrenalina", "advocacy", "affare", "affetto", "affiliato", 46 | "affinità", "affanno", "aggiornamento", "aggettivo", "agopuntura", 47 | "agricoltura", "alcol", "alimento", "alloggio", "allerta", "ambiente", 48 | "ammirazione", "amministratore", "amministrazione", "ammissione", "amore", 49 | "analisi", "analista", "animale", "anniversario", "applauso", "architettura", 50 | "area", "armonica", "articolo", "associazione", "astrologia", "astronomia", 51 | "avventura", "avvento", "avvocato", "banca", "bar", "batteria", "bellissimo", 52 | "biblioteca", "biografia", "bocca", "braccio", "brevetto", "caffe", "camera", 53 | "capo", "carattere", "carta", "casa", "cassetta", "catalogo", "città", 54 | "colore", "comportamento", "computer", "conferenza", "consiglio", "consumo", 55 | "contesto", "cucina", "danno", "debito", "decisione", "definizione", 56 | "dipartimento", "documento", "donna", "educazione", "efficienza", "energia", 57 | "esame", "esperienza", "fabbrica", "festa", "film", "forza", "fotografia", 58 | "futuro", "gioco", "giornale", "grandezza", "immagine", "insegna", 59 | "invenzione", "istruzione", "lavoro", "libro", "macchina", "marco", "medico", 60 | "messaggio", "migliore", "moneta", "motivo", "musica", "notizia", "nuovo", 61 | "opera", "orologio", "pacchetto", "piano", "problema", "programma", "progetto", 62 | "qualità", "quotidiano", "ragione", "realtà", "salute", "scelta", "scuola", 63 | "sedia", "settimana", "simbolo", "sistema", "spazio", "sport", "storia", 64 | "telefono", "tempera", "tempo", "tessuto", "tradizione", "valore", "vetrina", 65 | "viaggio", "video", "vita", "votazione", "zona", 66 | ] 67 | 68 | pub const prepositions = [ 69 | "a", "a causa di", "a condizione che", "a forza di", "a metà", "a meno di", 70 | "a partire da", "a causa di", "a traverso", "al di fuori di", "al di sopra di", 71 | "al di sotto di", "accanto a", "ad", "all'interno di", "alla", "alle", "allo", 72 | "altro che", "anche", "appena", "assieme a", "attraverso", "con", "contro", 73 | "da", "davanti a", "dietro", "dentro", "dopo", "durante", "eccetto", "entro", 74 | "fra", "in", "in base a", "in seguito a", "in mezzo a", "in riva a", 75 | "in vista di", "intorno a", "mentre", "oltre", "per", "presso", "prima di", 76 | "proprio", "secondo", "senza", "sopra", "sotto", "su", "verso", "vicino a", 77 | ] 78 | 79 | pub const interjections = [ 80 | "ahi", "ahimè", "alè", "bah", "be", "bello", "bravo", "brr", "ciao", "dai", 81 | "eh", "ehi", "ecco", "emm", "ehm", "hè", "oh", "ops", "puff", "pum", "qui", 82 | "sì", "uh", "uhm", "vabbè", "wow", "zac", "zitto", "zuppa", 83 | ] 84 | 85 | pub const conjunctions = [ 86 | "affinché", "altrimenti", "anche se", "ancora che", "appena", "benché", "così", 87 | "come", "come se", "che", "cosa che", "da quando", "dato che", "di modo che", 88 | "e", "finché", "in quanto", "in modo che", "ma", "mentre", "né", "nonostante", 89 | "oppure", "o", "oltre a", "perché", "piuttosto che", "quando", "se", "sebbene", 90 | "siccome", "sino a", "tuttavia", "unicamente", "vecchio che", "verso", 91 | "quando", "sebbene", "sino a", "senza che", "quindi", 92 | ] 93 | 94 | pub const adverbs = [ 95 | "abbastanza", "adesso", "allora", "anche", "ancora", "appena", "bene", 96 | "certamente", "completamente", "così", "davvero", "dopo", "dove", "già", 97 | "incredibilmente", "lontano", "mai", "molto", "neppure", "niente", "non", 98 | "oggi", "oppure", "poco", "poi", "presto", "quasi", "quanto", "sempre", 99 | "sicuramente", "spesso", "subito", "tanto", "tardi", "tempo", "tuttavia", 100 | "veramente", "vicino", "volontariamente", 101 | ] 102 | 103 | pub const adjectives = [ 104 | "abbonato", "abnormale", "affettuoso", "affollato", "aggressivo", "allegro", 105 | "allegro", "amichevole", "amorevole", "antico", "anziano", "arido", 106 | "armonioso", "aspro", "attento", "attraente", "avanzato", "avvincente", 107 | "azzurro", "basso", "bello", "bianco", "blond", "brillante", "brutto", "buono", 108 | "cattivo", "chiaro", "colorato", "completo", "comune", "confortevole", 109 | "costoso", "crudele", "cupo", "dannoso", "delicato", "denso", "divertente", 110 | "dolce", "eccellente", "economico", "elegante", "enorme", "esclusivo", 111 | "estraneo", "fantastico", "faticoso", "felice", "freddo", "frizzante", 112 | "gentile", "gigantesco", "grande", "grosso", "imbottito", "impetuoso", 113 | "incantevole", "indifferente", "intenso", "interessante", "largo", "luminosa", 114 | "magico", "malo", "marino", "maturo", "medievale", "misterioso", "moderno", 115 | "molto", "musicale", "muto", "naturale", "normale", "nuovo", "oscuro", 116 | "pacifico", "pieno", "piccolo", "prezioso", "qualificato", "raffinato", 117 | "rarefatto", "recente", "riservato", "romantico", "ruvido", "sano", "scuro", 118 | "sincero", "sveglio", "tenero", "terribile", "triste", "vago", "vario", 119 | "vasto", "vecchio", "veloce", "vivace", "vulcanico", 120 | ] 121 | -------------------------------------------------------------------------------- /src/blah/lorem.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/en/lorem` 2 | 3 | import blah/en/lorem 4 | 5 | pub fn word() { 6 | lorem.word() 7 | } 8 | 9 | pub fn words(num: Int) { 10 | lorem.words(num) 11 | } 12 | 13 | pub fn slug(num: Int) { 14 | lorem.slug(num) 15 | } 16 | 17 | pub fn sentence() { 18 | lorem.sentence() 19 | } 20 | 21 | pub fn sentences(num: Int) { 22 | lorem.sentences(num) 23 | } 24 | 25 | pub fn paragraph() { 26 | lorem.paragraph() 27 | } 28 | 29 | pub fn paragraphs(num: Int) { 30 | lorem.paragraphs(num) 31 | } 32 | -------------------------------------------------------------------------------- /src/blah/name.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/en/name` 2 | 3 | import blah/en/name 4 | 5 | pub fn first_name() { 6 | name.first_name() 7 | } 8 | 9 | pub fn female_first_name() { 10 | name.female_first_name() 11 | } 12 | 13 | pub fn male_first_name() { 14 | name.male_first_name() 15 | } 16 | 17 | pub fn last_name() { 18 | name.last_name() 19 | } 20 | 21 | pub fn full_name() { 22 | name.full_name() 23 | } 24 | 25 | pub fn female_full_name() { 26 | name.female_full_name() 27 | } 28 | 29 | pub fn male_full_name() { 30 | name.male_full_name() 31 | } 32 | -------------------------------------------------------------------------------- /src/blah/other.gleam: -------------------------------------------------------------------------------- 1 | import gleam/float 2 | import gleam/int 3 | import gleam/list 4 | import gleam/string 5 | 6 | import blah/en/other 7 | import blah/utils.{get_random_int, get_random_item} 8 | 9 | pub fn currency() { 10 | other.currency() 11 | } 12 | 13 | pub fn latitude() { 14 | let assert Ok(nonce) = int.power(10, int.to_float(get_random_int(3, 6))) 15 | float.ceiling({ { { float.random() *. 180.0 } -. 90.0 } *. nonce }) /. nonce 16 | } 17 | 18 | pub fn longitude() { 19 | let assert Ok(nonce) = int.power(10, int.to_float(get_random_int(3, 6))) 20 | float.ceiling({ { float.random() *. 360.0 } -. 180.0 } *. nonce) /. nonce 21 | } 22 | 23 | pub fn language_code() { 24 | get_random_item(language_codes) 25 | } 26 | 27 | pub fn semver() { 28 | list.repeat("", get_random_int(2, 4)) 29 | |> list.map(fn(_) { int.random(32) }) 30 | |> list.map(int.to_string) 31 | |> string.join(".") 32 | } 33 | 34 | pub fn mongo_object_id() { 35 | list.repeat("", 24) 36 | |> list.map(fn(_) { int.random(16) }) 37 | |> list.map(fn(digit) { 38 | digit 39 | |> int.to_base16 40 | |> string.lowercase 41 | }) 42 | |> string.join("") 43 | } 44 | 45 | pub fn uuid() { 46 | list.repeat("", 32) 47 | |> list.map(fn(_) { int.random(16) }) 48 | |> list.map(fn(digit) { 49 | digit 50 | |> int.to_base16 51 | |> string.lowercase 52 | }) 53 | |> list.fold("", fn(uuid, char) { 54 | let uuid = string.append(uuid, char) 55 | case string.length(uuid) { 56 | 8 | 13 | 18 | 23 -> string.append(uuid, "-") 57 | _ -> uuid 58 | } 59 | }) 60 | } 61 | 62 | const language_codes = [ 63 | "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay", "az", "ba", 64 | "be", "bg", "bh", "bi", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ch", "co", 65 | "cr", "cs", "cu", "cv", "cy", "da", "de", "dv", "dz", "ee", "el", "en", "eo", 66 | "es", "et", "eu", "fa", "ff", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", 67 | "gn", "gu", "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", 68 | "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", "ja", "jv", "ka", "kg", 69 | "ki", "kj", "kk", "kl", "km", "kn", "ko", "kr", "ks", "ku", "kv", "kw", "ky", 70 | "la", "lb", "lg", "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", 71 | "ml", "mn", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl", "nn", 72 | "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", "ps", 73 | "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "si", 74 | "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", 75 | "te", "tg", "th", "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", 76 | "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", 77 | "zh", "zu", 78 | ] 79 | -------------------------------------------------------------------------------- /src/blah/string.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/en/string` 2 | 3 | import blah/en/string 4 | 5 | pub fn alpha(length: Int) { 6 | string.alpha(length) 7 | } 8 | 9 | pub fn lower_alpha(length: Int) { 10 | string.lower_alpha(length) 11 | } 12 | 13 | pub fn upper_alpha(length: Int) { 14 | string.upper_alpha(length) 15 | } 16 | 17 | pub fn numeric(length: Int) { 18 | string.numeric(length) 19 | } 20 | 21 | pub fn alphanumeric(length: Int) { 22 | string.alphanumeric(length) 23 | } 24 | 25 | /// you can use the below codes to specify your desired pattern: 26 | /// 27 | /// %c - digits and letters 28 | /// 29 | /// %w - letters 30 | /// 31 | /// %d - digits 32 | /// 33 | /// %n - non-zero digits 34 | /// 35 | /// %l - lowercase letters 36 | /// 37 | /// %u - uppercase letters 38 | /// 39 | pub fn with_pattern(given_pattern: String) { 40 | string.with_pattern(given_pattern) 41 | } 42 | 43 | pub fn roman_numeral(min: Int, max: Int) { 44 | string.roman_numeral(min, max) 45 | } 46 | -------------------------------------------------------------------------------- /src/blah/time.gleam: -------------------------------------------------------------------------------- 1 | import blah/utils.{get_random_int} 2 | 3 | import birl 4 | import birl/duration 5 | 6 | pub fn in_interval(from: birl.Time, to: birl.Time) -> birl.Time { 7 | let unix_from = birl.to_unix(from) 8 | let unix_to = birl.to_unix(to) 9 | 10 | get_random_int(unix_from, unix_to) 11 | |> birl.from_unix() 12 | } 13 | 14 | pub fn symmetric(distance: duration.Duration) { 15 | let now = birl.now() 16 | 17 | let unix_from = 18 | now 19 | |> birl.subtract(distance) 20 | |> birl.to_unix 21 | 22 | let unix_to = 23 | now 24 | |> birl.add(distance) 25 | |> birl.to_unix 26 | 27 | get_random_int(unix_from, unix_to) 28 | |> birl.from_unix() 29 | } 30 | 31 | pub fn past( 32 | min_distance: duration.Duration, 33 | max_distance: duration.Duration, 34 | ) -> birl.Time { 35 | let now = birl.now() 36 | 37 | let unix_from = 38 | now 39 | |> birl.subtract(max_distance) 40 | |> birl.to_unix 41 | 42 | let unix_to = 43 | now 44 | |> birl.subtract(min_distance) 45 | |> birl.to_unix 46 | 47 | get_random_int(unix_from, unix_to) 48 | |> birl.from_unix() 49 | } 50 | 51 | pub fn future( 52 | min_distance: duration.Duration, 53 | max_distance: duration.Duration, 54 | ) -> birl.Time { 55 | let now = birl.now() 56 | 57 | let unix_from = 58 | now 59 | |> birl.add(min_distance) 60 | |> birl.to_unix 61 | 62 | let unix_to = 63 | now 64 | |> birl.add(max_distance) 65 | |> birl.to_unix 66 | 67 | get_random_int(unix_from, unix_to) 68 | |> birl.from_unix() 69 | } 70 | -------------------------------------------------------------------------------- /src/blah/utils.gleam: -------------------------------------------------------------------------------- 1 | import gleam/int 2 | import gleam/list 3 | 4 | pub fn get_random_int(min, max) { 5 | int.random(max - min) + min 6 | } 7 | 8 | pub fn get_random_item(given_list: List(a)) { 9 | let max_index = list.length(given_list) 10 | let index = int.random(max_index) 11 | let assert [item, ..] = list.drop(given_list, index) 12 | item 13 | } 14 | -------------------------------------------------------------------------------- /src/blah/word.gleam: -------------------------------------------------------------------------------- 1 | //// same as `blah/en/word` 2 | 3 | import blah/en/word 4 | 5 | pub fn verb() { 6 | word.verb() 7 | } 8 | 9 | pub fn preposition() { 10 | word.preposition() 11 | } 12 | 13 | pub fn noun() { 14 | word.noun() 15 | } 16 | 17 | pub fn interjection() { 18 | word.interjection() 19 | } 20 | 21 | pub fn conjunction() { 22 | word.conjunction() 23 | } 24 | 25 | pub fn adverb() { 26 | word.adverb() 27 | } 28 | 29 | pub fn adjective() { 30 | word.adjective() 31 | } 32 | -------------------------------------------------------------------------------- /test/address_it_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleam/string 3 | import gleeunit/should 4 | 5 | import blah/it/address 6 | import blah/locales/it/address as address_repo 7 | 8 | pub fn country_test() { 9 | list.contains(address_repo.countries, address.country()) 10 | |> should.be_true 11 | } 12 | 13 | pub fn region_test() { 14 | list.contains(address_repo.regions, address.region()) 15 | |> should.be_true 16 | } 17 | 18 | pub fn city_test() { 19 | list.contains(address_repo.cities, address.city()) 20 | |> should.be_true 21 | } 22 | 23 | pub fn province_test() { 24 | list.contains(address_repo.provinces, address.province()) 25 | |> should.be_true 26 | } 27 | 28 | pub fn street_test() { 29 | list.contains( 30 | address_repo.streets, 31 | address.street() |> string.replace("Via ", ""), 32 | ) 33 | |> should.be_true 34 | } 35 | 36 | pub fn direction_test() { 37 | list.contains(address_repo.directions, address.direction()) 38 | } 39 | 40 | pub fn direction_codes_test() { 41 | list.contains(address_repo.direction_codes, address.direction_codes()) 42 | } 43 | 44 | pub fn time_zones_test() { 45 | list.contains(address_repo.time_zones, address.time_zones()) 46 | } 47 | -------------------------------------------------------------------------------- /test/blah_test.gleam: -------------------------------------------------------------------------------- 1 | import gleeunit 2 | 3 | pub fn main() { 4 | gleeunit.main() 5 | } 6 | -------------------------------------------------------------------------------- /test/internet_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/int 2 | import gleam/list 3 | import gleam/regexp 4 | import gleam/string 5 | import gleam/uri 6 | import gleeunit/should 7 | 8 | import blah/internet 9 | import blah/other 10 | 11 | pub fn email_test() { 12 | let email_parts = string.split(internet.email("simon"), "@") 13 | 14 | list.length(email_parts) 15 | |> should.equal(2) 16 | 17 | let assert [_username, domain] = email_parts 18 | 19 | let domain_parts = string.split(domain, ".") 20 | 21 | list.length(domain_parts) 22 | |> should.equal(2) 23 | } 24 | 25 | pub fn passphrase_test() { 26 | let passphrase_parts = string.split(internet.passphrase(), " ") 27 | 28 | list.length(passphrase_parts) 29 | |> should.equal(4) 30 | } 31 | 32 | pub fn uri_test() { 33 | internet.uri() 34 | |> uri.parse 35 | |> should.be_ok 36 | } 37 | 38 | pub fn ip_v4_test() { 39 | let fields = string.split(internet.ip_v4(), ".") 40 | 41 | fields 42 | |> list.length 43 | |> should.equal(4) 44 | 45 | let assert Ok(fields) = 46 | fields 47 | |> list.try_map(int.parse) 48 | 49 | fields 50 | |> list.each(fn(f) { should.be_true(f >= 0 && f <= 255) }) 51 | } 52 | 53 | pub fn ip_v6_test() { 54 | let fields = string.split(internet.ip_v6(), ":") 55 | 56 | fields 57 | |> list.length 58 | |> should.equal(8) 59 | 60 | fields 61 | |> list.map(int.base_parse(_, 16)) 62 | |> list.map(should.be_ok) 63 | |> list.each(fn(f) { should.be_true(f >= 0 && f <= 65_535) }) 64 | } 65 | 66 | pub fn mac_test() { 67 | let fields = string.split(internet.mac(), ":") 68 | 69 | fields 70 | |> list.length 71 | |> should.equal(6) 72 | 73 | fields 74 | |> list.map(int.base_parse(_, 16)) 75 | |> list.map(should.be_ok) 76 | |> list.each(fn(f) { should.be_true(f >= 0 && f <= 255) }) 77 | } 78 | 79 | pub fn long_hex_color_test() { 80 | let color = internet.long_hex_color() 81 | 82 | let assert Ok(re) = regexp.from_string("^#[0-9a-fA-F]{6}$") 83 | 84 | regexp.check(re, color) 85 | |> should.be_true 86 | } 87 | 88 | pub fn short_hex_color_test() { 89 | let color = internet.short_hex_color() 90 | 91 | let assert Ok(re) = regexp.from_string("^#[0-9a-fA-F]{3}$") 92 | 93 | regexp.check(re, color) 94 | |> should.be_true 95 | } 96 | 97 | pub fn mongo_object_id_test() { 98 | let id = other.mongo_object_id() 99 | 100 | let assert Ok(re) = regexp.from_string("^[0-9a-fA-F]{24}$") 101 | 102 | regexp.check(re, id) 103 | |> should.be_true 104 | } 105 | -------------------------------------------------------------------------------- /test/lorem_it_test.gleam: -------------------------------------------------------------------------------- 1 | import blah/it/lorem 2 | import blah/locales/it/lorem as lorem_repo 3 | import gleam/list 4 | 5 | pub fn word_test() { 6 | list.contains(lorem_repo.words, lorem.word()) 7 | } 8 | -------------------------------------------------------------------------------- /test/name_it_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleam/string 3 | import gleeunit/should 4 | 5 | import blah/it/name 6 | import blah/locales/it/name as name_repo 7 | 8 | pub fn first_name_test() { 9 | list.contains(name_repo.first_names(), name.first_name()) 10 | |> should.be_true 11 | } 12 | 13 | pub fn last_name_test() { 14 | list.contains(name_repo.last_names, name.last_name()) 15 | |> should.be_true 16 | } 17 | 18 | pub fn female_first_name_test() { 19 | list.contains(name_repo.female_first_names, name.female_first_name()) 20 | |> should.be_true 21 | } 22 | 23 | pub fn female_full_name_test() { 24 | let full_name = name.female_full_name() 25 | let assert Ok(#(first_name, _)) = string.split_once(full_name, on: " ") 26 | 27 | list.contains(name_repo.female_first_names, first_name) 28 | |> should.be_true 29 | } 30 | 31 | pub fn male_first_name_test() { 32 | list.contains(name_repo.male_first_names, name.male_first_name()) 33 | |> should.be_true 34 | } 35 | 36 | pub fn male_full_name_test() { 37 | let full_name = name.male_full_name() 38 | let assert Ok(#(first_name, _)) = string.split_once(full_name, on: " ") 39 | 40 | list.contains(name_repo.male_first_names, first_name) 41 | |> should.be_true 42 | } 43 | -------------------------------------------------------------------------------- /test/name_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleam/string 3 | import gleeunit/should 4 | 5 | import blah/locales/en/name as name_repo 6 | import blah/name 7 | 8 | pub fn first_name_test() { 9 | list.contains(name_repo.first_names, name.first_name()) 10 | |> should.be_true 11 | } 12 | 13 | pub fn last_name_test() { 14 | list.contains(name_repo.last_names, name.last_name()) 15 | |> should.be_true 16 | } 17 | 18 | pub fn female_first_name_test() { 19 | list.contains(name_repo.female_first_names, name.female_first_name()) 20 | |> should.be_true 21 | } 22 | 23 | pub fn female_full_name_test() { 24 | let full_name = name.female_full_name() 25 | let assert Ok(#(first_name, _)) = string.split_once(full_name, on: " ") 26 | 27 | list.contains(name_repo.female_first_names, first_name) 28 | |> should.be_true 29 | } 30 | 31 | pub fn male_first_name_test() { 32 | list.contains(name_repo.male_first_names, name.male_first_name()) 33 | |> should.be_true 34 | } 35 | 36 | pub fn male_full_name_test() { 37 | let full_name = name.male_full_name() 38 | let assert Ok(#(first_name, _)) = string.split_once(full_name, on: " ") 39 | 40 | list.contains(name_repo.male_first_names, first_name) 41 | |> should.be_true 42 | } 43 | -------------------------------------------------------------------------------- /test/other_it_test.gleam: -------------------------------------------------------------------------------- 1 | import blah/fr/other 2 | import gleam/list 3 | 4 | import blah/locales/it/finance as finance_repo 5 | 6 | pub fn currency_test() { 7 | list.contains(finance_repo.currencies, other.currency()) 8 | } 9 | -------------------------------------------------------------------------------- /test/utils_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleeunit/should 3 | 4 | import blah/utils 5 | 6 | const items = ["A", "B", "C"] 7 | 8 | pub fn get_random_item_test() { 9 | items 10 | |> utils.get_random_item 11 | |> list.contains(items, _) 12 | |> should.be_true 13 | } 14 | -------------------------------------------------------------------------------- /test/word_fa_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleeunit/should 3 | 4 | import blah/fa/word 5 | import blah/locales/fa/word as word_repo 6 | 7 | pub fn verb_test() { 8 | list.contains(word_repo.verbs, word.verb()) 9 | |> should.be_true 10 | } 11 | 12 | pub fn preposition_test() { 13 | list.contains(word_repo.prepositions, word.preposition()) 14 | |> should.be_true 15 | } 16 | 17 | pub fn noun_test() { 18 | list.contains(word_repo.nouns, word.noun()) 19 | |> should.be_true 20 | } 21 | 22 | pub fn interjection_test() { 23 | list.contains(word_repo.interjections, word.interjection()) 24 | |> should.be_true 25 | } 26 | 27 | pub fn conjunction_test() { 28 | list.contains(word_repo.conjunctions, word.conjunction()) 29 | |> should.be_true 30 | } 31 | 32 | pub fn adverb_test() { 33 | list.contains(word_repo.adverbs, word.adverb()) 34 | |> should.be_true 35 | } 36 | 37 | pub fn adjective_test() { 38 | list.contains(word_repo.adjectives, word.adjective()) 39 | |> should.be_true 40 | } 41 | -------------------------------------------------------------------------------- /test/word_fr_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleeunit/should 3 | 4 | import blah/fr/word 5 | import blah/locales/fr/word as word_repo 6 | 7 | pub fn verb_test() { 8 | list.contains(word_repo.verbs, word.verb()) 9 | |> should.be_true 10 | } 11 | 12 | pub fn preposition_test() { 13 | list.contains(word_repo.prepositions, word.preposition()) 14 | |> should.be_true 15 | } 16 | 17 | pub fn noun_test() { 18 | list.contains(word_repo.nouns, word.noun()) 19 | |> should.be_true 20 | } 21 | 22 | pub fn interjection_test() { 23 | list.contains(word_repo.interjections, word.interjection()) 24 | |> should.be_true 25 | } 26 | 27 | pub fn conjunction_test() { 28 | list.contains(word_repo.conjunctions, word.conjunction()) 29 | |> should.be_true 30 | } 31 | 32 | pub fn adverb_test() { 33 | list.contains(word_repo.adverbs, word.adverb()) 34 | |> should.be_true 35 | } 36 | 37 | pub fn adjective_test() { 38 | list.contains(word_repo.adjectives, word.adjective()) 39 | |> should.be_true 40 | } 41 | -------------------------------------------------------------------------------- /test/word_it_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleeunit/should 3 | 4 | import blah/it/word 5 | import blah/locales/it/word as word_repo 6 | 7 | pub fn verb_test() { 8 | list.contains(word_repo.verbs, word.verb()) 9 | |> should.be_true 10 | } 11 | 12 | pub fn preposition_test() { 13 | list.contains(word_repo.prepositions, word.preposition()) 14 | |> should.be_true 15 | } 16 | 17 | pub fn noun_test() { 18 | list.contains(word_repo.nouns, word.noun()) 19 | |> should.be_true 20 | } 21 | 22 | pub fn interjection_test() { 23 | list.contains(word_repo.interjections, word.interjection()) 24 | |> should.be_true 25 | } 26 | 27 | pub fn conjunction_test() { 28 | list.contains(word_repo.conjunctions, word.conjunction()) 29 | |> should.be_true 30 | } 31 | 32 | pub fn adverb_test() { 33 | list.contains(word_repo.adverbs, word.adverb()) 34 | |> should.be_true 35 | } 36 | 37 | pub fn adjective_test() { 38 | list.contains(word_repo.adjectives, word.adjective()) 39 | |> should.be_true 40 | } 41 | -------------------------------------------------------------------------------- /test/word_test.gleam: -------------------------------------------------------------------------------- 1 | import gleam/list 2 | import gleeunit/should 3 | 4 | import blah/locales/en/word as word_repo 5 | import blah/word 6 | 7 | pub fn verb_test() { 8 | list.contains(word_repo.verbs, word.verb()) 9 | |> should.be_true 10 | } 11 | 12 | pub fn preposition_test() { 13 | list.contains(word_repo.prepositions, word.preposition()) 14 | |> should.be_true 15 | } 16 | 17 | pub fn noun_test() { 18 | list.contains(word_repo.nouns, word.noun()) 19 | |> should.be_true 20 | } 21 | 22 | pub fn interjection_test() { 23 | list.contains(word_repo.interjections, word.interjection()) 24 | |> should.be_true 25 | } 26 | 27 | pub fn conjunction_test() { 28 | list.contains(word_repo.conjunctions, word.conjunction()) 29 | |> should.be_true 30 | } 31 | 32 | pub fn adverb_test() { 33 | list.contains(word_repo.adverbs, word.adverb()) 34 | |> should.be_true 35 | } 36 | 37 | pub fn adjective_test() { 38 | list.contains(word_repo.adjectives, word.adjective()) 39 | |> should.be_true 40 | } 41 | --------------------------------------------------------------------------------