{"id":20750091,"url":"https://github.com/stargate-rewritten/language-linter","last_synced_at":"2026-03-16T06:14:30.792Z","repository":{"id":104867080,"uuid":"467264094","full_name":"stargate-rewritten/Language-Linter","owner":"stargate-rewritten","description":"A library to filter unicode characters based on language locales!","archived":false,"fork":false,"pushed_at":"2022-03-27T19:14:52.000Z","size":11,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-08T17:27:40.911Z","etag":null,"topics":["bukkit-library","filter","iso-15924","iso-639","unicode","unicode-scripts"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stargate-rewritten.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-03-07T21:24:33.000Z","updated_at":"2022-03-08T00:21:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"dd7cda3b-18b7-43a0-8693-14409391559d","html_url":"https://github.com/stargate-rewritten/Language-Linter","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"155bbaf3f23f389088c15805f0ffd4cf87c78d37"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate-rewritten%2FLanguage-Linter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate-rewritten%2FLanguage-Linter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate-rewritten%2FLanguage-Linter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stargate-rewritten%2FLanguage-Linter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stargate-rewritten","download_url":"https://codeload.github.com/stargate-rewritten/Language-Linter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243048214,"owners_count":20227593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bukkit-library","filter","iso-15924","iso-639","unicode","unicode-scripts"],"created_at":"2024-11-17T08:25:44.236Z","updated_at":"2025-12-24T07:36:48.705Z","avatar_url":"https://github.com/stargate-rewritten.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Language Linter\nA language-based approach to unicode filtering.\n\n\u003e **This project is a __WORK IN PROGRESS__!**\u003cbr\u003e\n\u003e No stable versions are as of yet available!\n## Purpose\nLanguage-Linter is a library that is designed to help projects filter unicode characters based on linguistic characteristics.\u003cbr\u003e\nGiven an `ISO 639` identifier, LangLint's methods enable the identification and management of foreign-language characters.\n\nFor example, in `ar` (Arabic) environments, users will be able to use 'هذه الرموز', but not '这些符号'.\u003cbr\u003e\nConversely, in `zh` (Chinese) environments, users will be able to use '这些符号', but not 'هذه الرموز'.\n\nSubject to configuration, Latin characters (U+0000 - U+007F) may be whitelisted regardless of locale.\n## Background\n### Original Use Case:\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e(Click to Expand)\u003c/b\u003e\u003c/summary\u003e\n\u003cb\u003eDevelopment for this library was started by the \u003ca href=\"https://github.com/stargate-rewritten/Stargate-Bukkit/tree/dev\"\u003eSG-Rewritten Project\u003c/a\u003e to accommodate the use-case outlined below:\u003c/b\u003e\n  \u003cbr\u003e\u003cbr\u003e\nUnder its default configuration, Stargate allows its end users to name their own gates, networks, etc.\u003cbr\u003e\nWhile gate names are used to identify specific portals, network names serve to identify groups of portals.\u003cbr\u003e\nIn both cases, the plugin facilitates valid use cases wherein other players may need to retype the collected strings.\n  \u003cbr\u003e\u003cbr\u003e\nAccordingly, such strings must be memorable, legible, and most importantly, capable of being copied by other players.\u003cbr\u003e\nIt follows that they should prevent unicode characters when they are inaccessible to most of a relevant userbase.\n  \u003cbr\u003e\u003cbr\u003e\nThrough an ISO 639-1 config option, SG has multilingual support; thus, filtering out non-Latin characters is not an option.\u003cbr\u003e\nInstead, SG must filter out all unicode characters that are supported by neither Latin nor a target locale.\n  \u003cbr\u003e\u003cbr\u003e\n\u003cb\u003eLanguage-Linter is a library developed by SG-Rewritten; its goal is to facilitate linguistic unicode filtration.\u003c/b\u003e\n\u003c/details\u003e\n\nApart from the above, we have thought of three other situations within which this library may be useful:\n### Other Possible Use Cases:\n- Helping chat filtration systems detect spam and bypasses.\n- Sanitizing user inputs to ensure they can be easily reproduced by other users.\n- Ensuring string legibility and preventing things such as t̶̪̅h̷̼͝í̴̼s̸̬̋.\n\n## Features\n- Tools to convert from `ISO 639-1` to unicode block aliases.\n- Tools to filter strings based on a passed `ISO 639-1` locale.\n- **Future features TBD**.\n### How it works\nLangLint maps `languages` to `scripts`; it also provides a collection of methods that interact with these mappings.\u003cbr\u003e\nThe mappings themselves are compiled with data from the [Unicode Consortium](https://unicode.org/consortium/consort.html)'s [Common Locale Data Repository](https://cldr.unicode.org/).\n#### Key concepts:\n##### Languages\n- All extant (and most extinct) languages can be represented by an [`ISO 639` ID](https://www.iso.org/iso-639-language-codes.html).\n- These IDs are assigned by the [International Standards Organisation](https://www.iso.org/about-us.html).\n##### Scripts\n- [Unicode](https://home.unicode.org/) is divided into [scripts](http://www.unicode.org/reports/tr24/#Introduction).\n- Scripts are groups of symbols with common histories; generally, they are related to systems of writing.\n### Documentation\nNot yet available.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstargate-rewritten%2Flanguage-linter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstargate-rewritten%2Flanguage-linter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstargate-rewritten%2Flanguage-linter/lists"}