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.
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"
}
}
JpnForPhp Transliterator component supports all mainstream romanization systems:
Transliterator
has been rewritten in 0.7, use it as below:
$transliterator = new Transliterator();
$transliterator->setSystem(new Hepburn());
$transliterator->transliterate('くるま');
- Japanese numeral (kanji, reading)
- Western year
- Japanese year (kanji, kana, romaji)
More units should complement the Converter
component in future release
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 | • | • |
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);
To run the test suite, you need Composer:
$ php composer.phar install
$ ./vendor/bin/phpunit
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.
Check out the develop branch to get all the latest code and change (http://github.com/mbilbille/jpnforphp/tree/develop)
JpnForPhp was created by Matthieu Bilbille and released under the MIT License.
- JPNlizer integrates JpnForPhp into Drupal - sandbox project [Deprecated]
- JpnForPhpBundle: integrates JpnForPhp as a Symfony2 Bundle - JpnForPhpBundle (by @albertofem)