mbilbille / jpnforphp
A tiny PHP lib which provides nice functions & wrappers to interact with Japanese language.
Installs: 285 856
Dependents: 3
Suggesters: 0
Security: 0
Stars: 69
Watchers: 7
Forks: 22
Open Issues: 3
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: 7.*
- symfony/yaml: >=2.3
Replaces
- jpnforphp/analyzer: 0.8.1
- jpnforphp/converter: 0.8.1
- jpnforphp/helper: 0.8.1
- jpnforphp/inflector: 0.8.1
- jpnforphp/transliterator: 0.8.1
README
JpnForPhp provides support and many helpers to play with Japanese language in PHP.
The JpnForPhp toolbox provides over 30 functions build around various components that support both basic actions: split, extract, etc. as well as more specialized and powerful features: transliteration, inflection, conversion, and so one.
Installation
The recommended way to install JpnForPhp is through Composer. Just create a composer.json file and run the php composer.phar install command to install it:
{ "require": { "mbilbille/jpnforphp": "~0.7" } }
Components
Transliterator
JpnForPhp Transliterator component supports all mainstream romanization systems:
⚠️ Component Transliterator
has been rewritten in 0.7, use it as below:
$transliterator = new Transliterator(); $transliterator->setSystem(new Hepburn()); $transliterator->transliterate('くるま');
Converter
- Japanese numeral (kanji, reading)
- Western year
- Japanese year (kanji, kana, romaji)
More units should complement the Converter
component in future release
Inflector
JpnForPhp Inflector component supports many verbal and language forms which are all exposed in kanji, kana and romaji.
Verbal form | Plain | Polite | Plain negative | Polite negative |
---|---|---|---|---|
Past | • | • | • | • |
-te form | • | • | • | • |
Potential | • | • | ||
Passive | • | • | • | • |
Causative | • | • | • | • |
Causative alternative | • | |||
Causative passive | • | • | • | • |
Provisional conditional | • | • | ||
Conditional | • | • | • | • |
Imperative | • | • | • | • |
Command | • | • | ||
Volitional | • | • | ||
Gerund | • | |||
Optative | • | • |
⚠️ Component Inflector
has been rewritten in 0.8, use it as below:
$entries = InflectorUtils::getEntriesFromDatabase('食べる'); Inflector::inflect($entries[0]); or $entry = new Entry(); $entry->setKanji('食べる'); $entry->setKana('たべる'); $entry->setType('v1'); Inflector::inflect($entry);
Tests
To run the test suite, you need Composer:
$ php composer.phar install $ ./vendor/bin/phpunit
Want to help?
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues.
Upcoming
Check out the develop branch to get all the latest code and change (http://github.com/mbilbille/jpnforphp/tree/develop)
License
JpnForPhp was created by Matthieu Bilbille and released under the MIT License.
Integration
- JPNlizer integrates JpnForPhp into Drupal - sandbox project [Deprecated]
- JpnForPhpBundle: integrates JpnForPhp as a Symfony2 Bundle - JpnForPhpBundle (by @albertofem)