{"id":21019345,"url":"https://github.com/rmraya/bcp47j","last_synced_at":"2026-03-04T20:07:41.927Z","repository":{"id":226582842,"uuid":"768857924","full_name":"rmraya/BCP47J","owner":"rmraya","description":"Java library for languages and BCP47","archived":false,"fork":false,"pushed_at":"2026-02-10T23:52:16.000Z","size":1936,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-11T00:34:07.943Z","etag":null,"topics":["bcp47","i18n","java","l10n"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rmraya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-07T21:34:29.000Z","updated_at":"2026-02-10T23:52:20.000Z","dependencies_parsed_at":"2024-06-02T13:54:17.398Z","dependency_job_id":"bc1674ce-425c-4c01-9de3-1ad355366a0d","html_url":"https://github.com/rmraya/BCP47J","commit_stats":null,"previous_names":["rmraya/bcp47j"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rmraya/BCP47J","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmraya%2FBCP47J","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmraya%2FBCP47J/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmraya%2FBCP47J/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmraya%2FBCP47J/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rmraya","download_url":"https://codeload.github.com/rmraya/BCP47J/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rmraya%2FBCP47J/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30091729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T19:41:02.502Z","status":"ssl_error","status_checked_at":"2026-03-04T19:40:05.550Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bcp47","i18n","java","l10n"],"created_at":"2024-11-19T10:31:21.979Z","updated_at":"2026-03-04T20:07:41.918Z","avatar_url":"https://github.com/rmraya.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BCP47J\n\nA library written in Java for handling Language Tags in compliance with [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt).\n\nThis library is part of [OpenXLIFF Filters](https://github.com/rmraya/OpenXLIFF)\n\n## Usage\n\nUse the static methods provided by class `com.maxprograms.languages.LanguageUtils`\n\n| Method | Description |\n| --- | --- |\n| `List\u003cLanguage\u003e getAllLanguages()` | Returns a list of all languages from BCP47 |\n| `List\u003cLanguage\u003e getCommonLanguages()` | Returns a list of most common languages |\n| `Language getLanguage(String code)` | Returns a language given its code |\n| `Language languageFromName(String description)` | Returns a language given its description |\n| `String normalizeCode(String code)` | Normalizes a language code to the format described in BCP47 |\n| `boolean isBiDi(String code)` | Returns true if the language is written right-to-left |\n| `boolean isCJK(String code)` | Returns true if the language is written in CJK script |\n| `String[] getLanguageNames()` | Returns an array with the names of most common languages |\n\n### Localization\n\nThis library includes lists of languages with their names in English, Spanish and French.\n\nSet `Locale` to `en` (default), `es` or `fr` to get the names in English, Spanish or French respectively.\n\n```java\n\nLocale.setDefault(Locale.forLanguageTag(\"es\"));\nString[] names = LanguageUtils.getLanguageNames();\n\n```\n\nContact \u003ctech@maxprograms.com\u003e to localize the names to other languages.\n\n### Example\n\n```java\nimport com.maxprograms.languages.Language;\nimport com.maxprograms.languages.LanguageUtils;\n\n...\n\nboolean isValidLanguage(String code) {\n    return LanguageUtils.getLanguage(code) != null;\n}\n\n```\n\n## Building\n\nYou need Java 21 and [Gradle](https://gradle.org/)\n\n* Point your `JAVA_HOME` variable to JDK 21\n* Checkout this repository\n* Run `gradle` to compile the source code\n\n``` text\ngit clone https://github.com/rmraya/BCP47J.git\ncd BCP47J\ngradle\n```\n\n## License\n\nThis software is source-available and proprietary.  \nYou may view and modify the source code for personal, educational, or internal evaluation purposes.\n\nRedistribution, commercial use, or distribution of modified versions is prohibited without prior written permission from Maxprograms.\n\nSee the `LICENSE.md` file for full terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmraya%2Fbcp47j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frmraya%2Fbcp47j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frmraya%2Fbcp47j/lists"}