{"id":17144227,"url":"https://github.com/abbadon1334/atk4-i18next-php","last_synced_at":"2025-04-13T11:11:49.969Z","repository":{"id":35010631,"uuid":"196214699","full_name":"abbadon1334/atk4-i18next-php","owner":"abbadon1334","description":"Agile Toolkit Translation library - Based on I18Next library","archived":false,"fork":false,"pushed_at":"2025-04-13T05:47:32.000Z","size":10581,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T06:28:00.839Z","etag":null,"topics":["agile","atk4","i18n","i18next","library","translation"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abbadon1334.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-10T13:54:46.000Z","updated_at":"2020-04-23T15:13:31.000Z","dependencies_parsed_at":"2024-02-20T16:31:40.129Z","dependency_job_id":"5a6d70cf-af58-40ee-95a0-43a37fb4390c","html_url":"https://github.com/abbadon1334/atk4-i18next-php","commit_stats":{"total_commits":63,"total_committers":2,"mean_commits":31.5,"dds":"0.12698412698412698","last_synced_commit":"812ec8b5d45a92c4f42ba71e477602fbf6014bd6"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abbadon1334%2Fatk4-i18next-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abbadon1334%2Fatk4-i18next-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abbadon1334%2Fatk4-i18next-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abbadon1334%2Fatk4-i18next-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abbadon1334","download_url":"https://codeload.github.com/abbadon1334/atk4-i18next-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248703199,"owners_count":21148118,"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":["agile","atk4","i18n","i18next","library","translation"],"created_at":"2024-10-14T20:43:24.350Z","updated_at":"2025-04-13T11:11:49.945Z","avatar_url":"https://github.com/abbadon1334.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHP Language library\n#### Based on i18next http://i18next.com\n#### Interpolate direct with ATK4 - Agile Toolkit Models https://www.agiletoolkit.org/\n\n[![Build Status](https://travis-ci.org/abbadon1334/atk4-i18next-php.svg?branch=master)](https://travis-ci.org/abbadon1334/atk4-i18next-php)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3936f18bcf2d47c38713dc49dc4cd44b)](https://www.codacy.com/app/abbadon1334/atk4-i18next-php?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=abbadon1334/atk4-i18next-php\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/3936f18bcf2d47c38713dc49dc4cd44b)](https://www.codacy.com/app/abbadon1334/atk4-i18next-php?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=abbadon1334/atk4-i18next-php\u0026amp;utm_campaign=Badge_Coverage)\n[![Coverage Status](https://coveralls.io/repos/github/abbadon1334/atk4-i18next-php/badge.svg?branch=master)](https://coveralls.io/github/abbadon1334/atk4-i18next-php?branch=master)\n[![StyleCI](https://github.styleci.io/repos/196214699/shield?branch=master)](https://github.styleci.io/repos/196214699)\n[![Maintainability](https://api.codeclimate.com/v1/badges/6aa647f7e846726e4f89/maintainability)](https://codeclimate.com/github/abbadon1334/atk4-i18next-php/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/6aa647f7e846726e4f89/test_coverage)](https://codeclimate.com/github/abbadon1334/atk4-i18next-php/test_coverage)\n\ninstall with composer :\n\n`composer require abbadon1334/atk4-i18next-php`\n\nAll documentation about the original library can be found here : http://i18next.com/\n\n### How to use :\n\n```\n$this-\u003etranslator = new Translator();\n$this-\u003etranslator-\u003esetTranslationsPath(__DIR__.'/data/locales');\n```\n\nDefine if filename will be used has namespace :\n```\n$this-\u003etranslator-\u003euseFilenameAsNamespace(true);\n```\n\nDefine primary and fallback languages (using names of the folder) :\n```\n$this-\u003etranslator-\u003esetLanguagePrimary($language);\n$this-\u003etranslator-\u003esetLanguageFallback($fallback);\n```\n\nAdd additional language : \n```\n$this-\u003etranslator-\u003eaddLanguage('it');\n```\n\nTranslate :\n```PHP\n\ninterface TranslatorInterface\n{\n    /**\n     * Translates the given message.\n     *\n     * @param string      $key\n     * @param array|null  $parameters Array of parameters used to translate message\n     * @param string|null $context\n     * @param string|null $locale     The locale or null to use the default\n     *\n     * @return string The translated string\n     */\n    public function _(string $key, ?array $parameters = null, ?string $context = null, ?string $locale = null): string;\n}\n\n// Usage\n\n$result = $this-\u003etranslator-\u003e_('definitionKey');\n\n$result = $this-\u003etranslator-\u003e_('definitionKey', ['param1' =\u003e 'test']);\n\n$result = $this-\u003etranslator-\u003e_('definitionKey', ['param1' =\u003e 'test'], 'context');\n\n$result = $this-\u003etranslator-\u003e_('definitionKey', ['param1' =\u003e 'test'], 'context', 'specificLanguage');\n\n$result = $this-\u003etranslator-\u003e_('namespace:definitionKey', ['param1' =\u003e 'test'], 'context', 'specificLanguage');\n```\n\n## Support I18Next\n#####  http://i18next.com\n\n- [x] Read translations files from folder, every folder is a language code\n    - [x] JSON\n    - [ ] YAML\n    - [ ] PHP Array\n- [ ] Write translations files to a folder, every folder is a language code\n    - [ ] JSON\n    - [ ] YAML\n    - [ ] PHP Array\n- [x] Get a defined translation in primary language\n    - [x] If not found try in fallback language\n        - [x] If not found return original string\n- [x] Namespaces\n    - [x] Get defined translation based on prioritized fallback namespaces\n- [x] Context as {key}_{context}\n- [x] Plurals\n    - [x] Singular as {key}\n    - [x] Plurals as {key}_plural\n    - [x] Multiple plurals as {key}_{int $counter}\n        - [x] Manage when $counter is bigger than max defined plurals\n    - [x] Nested interpolate plurals\n    - [x] Intervals\n- [x] Interpolate        \n    - [x] Replace {{key}} with defined $paramater value\n        - [x] If {{key}} has a point like {{key.index}} and $parameters[index] is an array or object will retrive the value\n- [x] Nesting \n    - [x] Basic\n    - [x] Plurals\n- [ ] Formatting\n- [x] Adding Helper for use method Translator::_ as global functions __\n- [x] Adding Helper for use Translator as a global singleton instance\n- [ ] Collect missing requested keys\n- [ ] Adding Helper for search/collect calls to method Translator _ in code\n- [x] Added direct translations using key as translation    \n\n## Support ATK4 - Agile Toolkit Model\n##### https://www.agiletoolkit.org\n\n- [x] Interpolate with \\atk4\\data\\Model\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabbadon1334%2Fatk4-i18next-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabbadon1334%2Fatk4-i18next-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabbadon1334%2Fatk4-i18next-php/lists"}