A morphological solution for Russian and English language written completely in PHP.

Overview

Morphos

A morphological solution for Russian and English language written completely in PHP.

Latest Stable Version License Total Downloads Daily Downloads Latest Unstable Version

Tests & Quality: Build Status Scrutinizer Code Quality Code Coverage

Features

  • [✓] Inflection of Personal names (Фамилия, Имя, Отчество) (Russian)
  • [✓] Inflection of Geographical names (Страны/Города) (Russian)
  • [✓] Declension/Pluralization of nouns and adjectives (Russian, English)
  • [✓] Generation numerals of numbers (количественные и порядковые) (Russian, English)
  • [✓] Spelling out amounts of money (Russian)
  • [✓] Spelling out time units and intervals (Russian, English)

Table of contents

  1. Installation
  2. Quick start
  3. Documentation
  4. Contributing

Installation

  • Download library through composer:
composer require wapmorgan/morphos

Adapters

Quick Start

Russian

// Inflect russian names:
morphos\Russian\inflectName('Иванов Петр', 'родительный') => 'Иванова Петра'

// Inflect geographical names:
morphos\Russian\GeographicalNamesInflection::getCase('Москва', 'родительный') => 'Москвы'

// Pluralize russian nouns and adjectives:
morphos\Russian\pluralize(10, 'новый дом') => '10 новых домов'

// Generate russian cardinal numerals:
morphos\Russian\CardinalNumeralGenerator::getCase(567, 'именительный') => 'пятьсот шестьдесят семь'

// Generate russian ordinal numerals:
morphos\Russian\OrdinalNumeralGenerator::getCase(961, 'именительный') => 'девятьсот шестьдесят первый'

// Generate russian time difference
morphos\Russian\TimeSpeller::spellDifference(time() + 3600, morphos\TimeSpeller::DIRECTION) => 'через 1 час'

// other functions described in README-ru.md

English

// Pluralize english nouns:
morphos\English\pluralize(10, 'house') => '10 houses'

// Generate english cardinal numerals:
morphos\English\CardinalNumeralGenerator::generate(567) => 'five hundred sixty-seven'

// Generate english ordinal numerals:
morphos\English\OrdinalNumeralGenerator::generate(961) => 'nine hundred sixty-first'

// Generate english time difference
morphos\English\TimeSpeller::spellDifference(time() + 3600, morphos\TimeSpeller::DIRECTION) => 'in 1 hour'

Documentation

Contributing

See CONTRIBUTING.md for this.

Comments
  • Incorrect country name morph in Russian

    Incorrect country name morph in Russian

    When trying to get country names in Russian it have two issues:

    1. It changes the character case to lowercase. Is is incorrect behaviour for abbreviation. Character case must be the same as in input string. We can't show names like usa or uae to customers, they must be in uppercase as in input string.
    2. Abbreviation country names become incorrect in Dat case: США transforms to сше, ОАЭ transforms to оаи. I think it is the common case of using this library to morph canonical country names in Russian and it is unusable now.
    opened by speller 24
  • Fix #65 pt.2

    Fix #65 pt.2

    #65 Фамилия Прожога при склонении в родительском роде получается Прожогы, хотя должна быть Прожоги

    При звонкой последней согласной и при глухой ы Прожога -> Прожоги Прожофа -> Прожофы

    opened by altapo 7
  • Добавить параметр $case к NounPluralization::pluralize()

    Добавить параметр $case к NounPluralization::pluralize()

    Как склонять в множественом числе?

    Желательный пример:

    NounPluralization::pluralize('цвет', 7, false, 'prepositional'); // -> цветах
    

    Я экспериментировал с этим методом, но не уверен в правильности для всех падежей:

        // @file morphos/src/Russian/NounPluralization.php
    
        public static function pluralize($word, $count = 2, $animateness = false, $case = NULL)
        {
            $case = isset($case) ? self::canonizeCase($case) : self::RODIT;
    
            // меняем местами аргументы, если они переданы в старом формате
            if (is_string($count) && is_numeric($word)) {
                list($count, $word) = [$word, $count];
            }
    
            // для адъективных существительных правила склонения проще:
            // только две формы
            if (self::isAdjectiveNoun($word)) {
                if (self::getNumeralForm($count) == self::ONE)
                    return $case == self::RODIT ? $word : NounDeclension::getCase($word, $case, $animateness);
                else
                    return NounPluralization::getCase($word, $case, $animateness);
            }
    
            switch (self::getNumeralForm($count)) {
                case self::ONE:
                    return $case == self::RODIT ? $word : NounDeclension::getCase($word, $case, $animateness);
                case self::TWO_FOUR:
                    if ( $case != self::PREPOSITIONAL ) {
                        return NounDeclension::getCase($word, $case, $animateness);
                    }
                case self::FIVE_OTHER:
                    // special case for YEAR >= 5
                    if ($word === 'год') {
                        return 'лет';
                    }
    
                    return NounPluralization::getCase($word, $case, $animateness);
            }
        }
    
    opened by duzun 7
  • morphos\S::setEncoding('utf-8') лишнее

    morphos\S::setEncoding('utf-8') лишнее

    В моем проэкте encoding проставляется в зависимости от настроек и сесии. Фаил src/initialization.php мешает в некоторых модулях или просто повторяет то что и так делает фреймворк.

    Но что оссобенно привлекло мое внимание это то что vendor/wapmorgan/morphos/src/S.php вызывается ооочень часто, даже чаше vendor/autoload.php, даже там где библиотека не используется.

    Может стоит просто упомянуть в документации что Morphos работает только на 'utf-8' и посоветовать вызов morphos\S::setEncoding('utf-8');, а src/initialization.php удолить из autoload?

    opened by duzun 7
  • Неправильно склоняется Торжок, Вышний Волочек

    Неправильно склоняется Торжок, Вышний Волочек

    Добрый День. Нашел проблему. Неверно склоняет некоторые города Торжок и Вышний Волочек

    http://morphos.io/try/geography?input=%D0%A2%D0%BE%D1%80%D0%B6%D0%BE%D0%BA

    В предложном: Торжоке и Вышнем Волочеке, а надо Торжке, Вышнем Волочке

    opened by apoldev 7
  • Неверно работает pluralize со словом

    Неверно работает pluralize со словом "модуль"

    Здравствуйте! Спасибо за библиотеку, очень классная! Но иногда дает сбой: http://morphos.io/try/numerals?number=7&word=%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C

    opened by efiand 6
  • Склонение прилагательных

    Склонение прилагательных

    Подскажите, есть ли возможность склонять прилагательные, а именно "Коммерческий директор" выдаёт "коммерческего", "коммерческему", "коммерческего"

    opened by K0r5hun 6
  • Винительный падеж, множественное число не всегда верно

    Винительный падеж, множественное число не всегда верно

    Пока наткнулся только на 1 проблему - слово "халат"

    echo morphos\Russian\NounPluralization::getCase("халат", "винительный") . PHP_EOL;
     // халата
    

    а должно быть "халаты"

    opened by Philosoft 6
  • Update MoneySpeller.php

    Update MoneySpeller.php

    fix problem http://sandbox.onlinephpfunctions.com/code/124c95f5bcd92df16f851ca3ffaaea873fa8a4e9

    случайно обнаружена проблема с числом 65536.40 выдает текст 39 копеек баг воспроизводится именно с числом в 40 копеек, когда целая часть больше 65536 и меньше 80000

    методом тыка выяснилось следующее баг повторяется в некотором диапазоне при пересечении байтовой границы хранения числа т.е. баг повторяется с числами: 256.4 - пересекли границу 1 байт 65536.4 - пересекли границу 2 байта 16777216.4 - пересекли границу 3 байта 4294967296.4 - пересекли границу 4 байта

    проблема где то в недрах php моя правка решает эту проблему

    opened by Zuzest 4
  • Двойные Фамилии

    Двойные Фамилии

    склоняется только последняя часть фамилии. А на http://morphos.tech дефис удаляется Соколов-Микитов Иван Сергеевича Кучера-Бози Людмила Копусов-Долинин Алексей Иванович Мартен-Люган Аньес

    opened by 111ypuk 3
  • Fix plurality for numbers more than 100.

    Fix plurality for numbers more than 100.

    Example of failing test:

    assertEquals('домов', Plurality::pluralize('дом', 213)); // returns 'дома'
    

    Fix: added recursive call of Plurality::getNumeralForm if $count > 100 with $count % 100.

    opened by alexlcdee 3
  • Возможность вывода денежного значения без копеек

    Возможность вывода денежного значения без копеек

    Если в метод \morphos\Russian\MoneySpeller::spell() передавать целое значение, то он все равно будет выводить во фразе копейки (сорока пяти рублей ноля копеек), можно ли добавить параметр, чтобы не выводить нулевые копейки?

    opened by semenovaolya 0
  • Города, заканчивающиеся на

    Города, заканчивающиеся на "-ово" не склоняются

    Вижу, что захардкожены некоторые города, но было бы лучше добавить такое правило. Например, город "Балаково". Где? "В Балаково ", сейчас "в Балакове"

    opened by Leon4y 1
  • Неправильные склонения в локативном падеже

    Неправильные склонения в локативном падеже

    Города, оканчивающиеся на "р" неверно склоняются Где? –

    Краснодару (правильно : в Краснодаре) Армавиру (правильно : в Армавире) Владимиру (правильно : в Владимире) Сыктывкару (правильно : в Сыктывкаре)

    bug 
    opened by Leon4y 0
  • Deprecated: Calling static trait method

    Deprecated: Calling static trait method

    Using PHP 8.1.9:

    Deprecated: Calling static trait method morphos\Russian\CasesHelper::canonizeCase is deprecated,
    it should only be called on a class using the trait
    in .../vendor/wapmorgan/morphos/src/Russian/functions.php on line 24
    

    👨‍💻

    opened by s0xDk 1
  • Окончания при смене рода в прилагательных в именительном падеже.

    Окончания при смене рода в прилагательных в именительном падеже.

    \morphos\Russian\AdjectiveDeclension::getCases("Красный", false , 'f')
    array(6) { ["nominative"]=> string(14) "Красныя" ["genitive"]=> string(14) "Красной" ["dative"]=> string(14) "Красной" ["accusative"]=> string(14) "Красную" ["ablative"]=> string(14) "Красной" ["prepositional"]=> string(14) "Красной" }
    
     \morphos\Russian\AdjectiveDeclension::getCases("Русский", false , 'f')
    array(6) { ["nominative"]=> string(14) "Русския" ["genitive"]=> string(14) "Русской" ["dative"]=> string(14) "Русской" ["accusative"]=> string(14) "Русскую" ["ablative"]=> string(14) "Русской" ["prepositional"]=> string(14) "Русской" }
    

    И средний род тоже с ошибкой в именительном падеже. Остальные падежи корректны.

    opened by Jective 0
Releases(3.2.26)
  • 3.2.26(Jul 10, 2022)

    • Fixed https://github.com/wapmorgan/Morphos/issues/118 - Russian preposition "in"
    • Fixed https://github.com/wapmorgan/Morphos/issues/121 - Russian last names
    • Fixed https://github.com/wapmorgan/Morphos/issues/116 - Russian cardinal for 8x number
    Source code(tar.gz)
    Source code(zip)
  • 3.2.25(Jul 4, 2022)

  • 3.2.24(Jun 18, 2022)

  • 3.2.23(Nov 28, 2020)

    • Specified types of class members, variables, parameters, code style (#89)
    • Fixed time difference calculation in TimeSpeller::spellDifference()

    Russian:

    • Fixed calculation of fractional money part (#91)
    • Added inflection of last female names ending with яя (#94)
    • Fixed time difference calculation (#92)
    • Fixed inflection of nouns: (#95, #98)
    • Geo:
      • Improved geo names exceptions (#90)
      • Improved geo names parts handling (Санкт-Перербург, Алма-Ата)
      • Fixed inflection of geo names ending with ня, ея
    Source code(tar.gz)
    Source code(zip)
  • 3.2.22(Jun 13, 2020)

    Russian:

    • Исправлено склонение городов (#80 @alter72, #81/#82 @DenysNosov)
    • Исправлено склонение существительных на (#84)
    Source code(tar.gz)
    Source code(zip)
  • 3.2.21(Apr 22, 2020)

    In Russian:

    • Добавлен локативный падеж в склонение географических названий: GeographicalNamesInflection::getCase('Крым', Cases::LOCATIVE) (#72)
    • Добавлена обработка фраз N район, N волость (#70);
    • 'Гоа' добавлено в исключения (#74);
    • Исправлено склонение наименований, оканчивающихся на шипящий согласный: Кривуша (#71)
    • Исправлено склонение имён на -аида
    Source code(tar.gz)
    Source code(zip)
  • 3.2.20(Feb 2, 2020)

    Russian:

    • Исправлены ошибки склонения:
      • Городов Крым (#61) / Сочи (#63)
      • Существительных на (#59)
      • Фамилий на -их и -га (#65)
    • Исправлена ошибка генерации числительных для 40 (#60)
    • Добавлена возможность указать падеж числительного при генерации суммы текстом (#64)
      MoneySpeller::spell(123.45, MoneySpeller::RUBLE, MoneySpeller::NORMAL_FORMAT, 'родительный')
      
    Source code(tar.gz)
    Source code(zip)
  • 3.2.19(Aug 17, 2019)

    English:

    • Added formatter date & time difference with now: \morphos\English\TimeSpeller::spellDifference($time). $time should be a DateTime instance, a string with date&time or unix timestamp (int).

    Russian:

    • Добавлено форматирование разницы с текущим временем: \morphos\Russian\TimeSpeller::spellDifference($time). $time должно быть объектом DateTime, строкой с датой/временем или unix timestamp.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.18(Jul 22, 2019)

    Russian:

    • Исправлено склонение некоторые географических названий (#53, #54, #55, #56)
    • Исправлено склонение некоторых существительных (#54)
    Source code(tar.gz)
    Source code(zip)
  • 3.2.17(May 23, 2019)

    Russian:

    • Добавлено склонение прилагательных: morphos\Russian\AdjectivesDeclension
    • Добавлено плюрализация прилагательных: morphos\Russian\AdjectivesPluralization
    • Поддержка прилагательных перед существительным добавлена в morphos\Russian\pluralize()
      morphos\Russian\pluralize(10, 'новый дом')
      

      даёт

      10 новых домов
      
    Source code(tar.gz)
    Source code(zip)
  • 3.2.16(Mar 20, 2019)

    Russian:

    • Исправлено склонение в предложном падеже названий, оканчивающихся на "р": Краснодар
    Source code(tar.gz)
    Source code(zip)
  • 3.2.15(Jan 8, 2019)

    Russian:

    • Добавлена возможность указать падеж при плюрализации существительного (#42 NounPluralization::pluralize('цвет', 7, false, 'prepositional');).
    • Исправлено склонение неверно написанного Орел.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.14(Jan 8, 2019)

  • 3.2.13(Nov 18, 2018)

    • Removed setting process-wide encoding via mb_internal_encoding() or iconv_set_encoding. Now Morphos uses internal encoding without influence on PHP settings. If you pass non-unicode (utf-8) strings in Morphos, set encoding before usage via \morphos\S::setEncoding($encoding).
    • Updated string functions to work properly without mbstring.

    Russian:

    • Исправлена смена рода глагола в RussianLanguage::verb(), не оканчивающегося на л.
    • Исправлена плюрализация слов, оканчивающихся на -ика.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.12(Sep 18, 2018)

    Russian:

    • Добавлена обработка слов "район", "поселок", "округ", "республика" в GeographicalNamesInflection.
    • Исправлено склонение топонимов на шь (Россошь), ы (Чебоксары), ль (Электросталь), топонимов с бегающими гласными (Орёл).
    • Исправлено склонение некоторых неизменяемых слов в NounDeclension и NounPluralization.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.11(Jun 27, 2018)

    Russian:

    • Обновлён метод FirstNamesInflection::isMutable(): добавлено больше правил.
    • Исправлено склонение слов, обозначающих валюту (песо, гривна, юань).
    • Исправлено склонение географических названий на -чь, -рь (Керчь, Анадырь).
    • Обновлён метод MoneySpeller::spell(): если дробная часть отсутствует, то она не указывается. (0 копеек и т.п.).

    General:

    • Added S::findLastPosition()
    • Update codestyle.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.10(May 26, 2018)

    Russian:

    • Обновлены правила склонения неизменяемых мужских имён.
    • Добавлены кейсы для имён Саша, Пётр.
    • Исправлена функция detectGender() при передаче только имени.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.9(May 18, 2018)

    Русский:

    • Исправлено склонение сложных географических названий через пробел, - и -на: Ростов-на-Дону, Переславль-Залесский.
    • Добавлено склонение фраз хутор N, пгт N в склонение.
    • Добавлена возможность указать количество фраз при генерации временного интервала текстом: TimeSpeller::spellInterval($interval, $modifiers, 2) - сгенерирует максимум две фразы для интервала, например 5 лет и 2 дня.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.8(Feb 8, 2018)

    Русский:

    • Поддержка словосочетаний село N в GeographicalNamesInflection
    • Добавлена функция getNameCases($fullName, $gender = null) для получения всех форм имени
    • В функцию inflectName() добавлена возможность передавать только имя.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.7(Nov 17, 2017)

    Russian:

    • Исправлена генерация творительного падежа городов на ов: Киров, Псков, Тамбов (thanks to @VitalyArt)
    Source code(tar.gz)
    Source code(zip)
  • 3.2.6(Nov 17, 2017)

    Russian:

    • Исправлено склонение города Ростов-на-Дону
    • Исправлено постановка существительных типа ванная во множественное число (раньше была проблема с количеством 2 и 3).
    • Функция morphos\Russian\pluralize() и метод morphos\Russian\NounPluralization::pluralize() могут принимать аргументы (кол-во предметов и название предмета) в любом порядке. Следующие вызовы равнозначны:
    morphos\Russian\pluralize(5, 'дом')
    morphos\Russian\pluralize('дом', 5)
    
    • Исправлено склонение некоторых иноязычных имён, оканчивающихся на -ек.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.5(Sep 20, 2017)

    Russian:

    • Добавлена обработка слов город, край и область в GeographicalNamesInflection
    • Удален предлог о/об из всех функций склонения. Теперь чтобы его добавить оберните склонённое слово в вызов RussianLanguage::about():
    RussianLanguage::about(NounDeclension::getCase('обед', 'предложный')) => 'об обеде'
    
    Source code(tar.gz)
    Source code(zip)
  • 3.2.4(Sep 2, 2017)

    Russian:

    • Добавлены методы, добавляющие к слову верную форму предлога в (во), об (о, обо), c (со):
      • RussianLanguage::about($word) - добавляет о/об/обо в зависимости от букв, с которых начинается слово
      • RussianLanguage::in($word) - добавляет в/во в зависимости от букв, с которых начинается слово
      • RussianLanguage::with($word) - добавляет с/со в зависимости от букв, с которых начинается слово
    • Исправлено склонение в множественном числе слов, оканчивающихся на "т"/"р": сервер, халат.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.3(Aug 25, 2017)

    English:

    • Added TimeSpeller class: morphos\English\TimeSpeller::spellInterval(DateInterval $interval)
    • Changed morphos\English\pluralize() function:
      • Swapped order of parameters in : pluralize($count, $word)
      • Now it returns string in format "%n %word"
    Source code(tar.gz)
    Source code(zip)
  • 3.2.2(Aug 10, 2017)

    Russian:

    • Исправлено склонение составных фамилий: Мартен-Люган, Копусов-Долинин
    • Исправлено склонение географических названий, оканчивающихся на ый, ные, ны: Набережные Челны, Грозный
    • Небольшое изменение в сигнатуре функции morphos\Russian\pluralize(): изменён порядок аргументов: pluralize($count, $word)
    Source code(tar.gz)
    Source code(zip)
  • 3.2.1(Aug 3, 2017)

    Russian:

    • Исправлено склонение мужских фамилий на ой, ых, ко: Толстой, Фоминых, Стецко
    • Исправлено склонение всех женских фамилий на ая: Стальная
    • Исправлено генерация числительных цифры 2: две
    • Исправлено склонение иностранных отчеств, склоняющихся по правилам склонения имён: Христиан, Александр
    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Jul 20, 2017)

    BC-breaking API changes

    Russian

    • renamed classes:

      • GeneralDeclensionNounDeclension
      • PluralityNounPluralization
      • TimeUnitSpellerTimeSpeller
    • partially renamed classes:

      • CardinalNumeralCardinalNumeralGenerator
      • OrdinalNumeralOrdinalNumeralGenerator
      • FirstNamesDeclension, MiddleNamesDeclension, LastNamesDeclension, GeographicalNamesDeclension: Declension replaced with Inflection
    • functions change:

      • name() renamed to inflectName()
      • pluralize() now returns a string in format "%n %word" instead of inflected word only.

    English:

    • renamed classes:
      • CardinalNumeralCardinalNumeralGenerator
      • OrdinalNumeralOrdinalNumeralGenerator
      • PluralityNounPluralization

    New features

    Russian:

    • Added method NounDeclension::detectGender() for gender detection of nouns.
    • Updated rule of female last names ending with ха.

    Project changes

    Now Morphos fully meets PSR-2.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.9(Jul 13, 2017)

    • Renamed MoneyFormatter to MoneySpeller

    Russian:

    • Added TimeUnitSpeller: Spells date&time intervals like 5 часов и 6 минут назад
    • Increased priority of last name during gender detection in name() function
    Source code(tar.gz)
    Source code(zip)
  • 3.0.8(Jul 12, 2017)

    • Fixed script bootstrapping

    Russian:

    • Added MoneyFormatter
    • Added case for 0 in CardinalNumeral
    • Fixed declension of Geo names ending with ов
    Source code(tar.gz)
    Source code(zip)
  • 3.0.7(Jul 11, 2017)

    • Fixed bug in cardinal numerals generating classes (morphos\Russian\CardinalNumeral, morphos\English\CardinalNumeral) leading to infinite loop on x86.

    English:

    • Added generating of ordinal numerals.
    Source code(tar.gz)
    Source code(zip)
Official PHP library for the DeepL language translation API.

deepl-php Official PHP client library for the DeepL API. The DeepL API is a language translation API that allows other computer programs to send texts

DeepL 78 Dec 23, 2022
Language files manager in your artisan console.

Laravel Langman Langman is a language files manager in your artisan console, it helps you search, update, add, and remove translation lines with ease.

Mohamed Said 867 Nov 30, 2022
Support multiple language resources for Laravel

Laratrans Support multiple language resources for Laravel. Docs Installation composer require lechihuy/laratrans After you install the package success

Lê Chí Huy 3 Dec 21, 2021
[virion] Language management library for automatic translation

libtranslator :: library for automatic translation ✔️ Multilingual support for plugin messages ✔️ Translation language is set according to the player

PocketMine-MP projects of PresentKim 5 Jul 29, 2022
Patchwork UTF-8 for PHP: Extensive, portable and performant handling of UTF-8 and grapheme clusters for PHP

Patchwork UTF-8 for PHP Patchwork UTF-8 gives PHP developpers extensive, portable and performant handling of UTF-8 and grapheme clusters. It provides

Nicolas Grekas 80 Sep 28, 2022
FBT - a internationalization framework for PHP designed to be not just powerful and flexible, but also simple and intuitive

FBT is an internationalization framework for PHP designed to be not just powerful and flexible, but also simple and intuitive. It helps with the follo

Richard Dobroň 4 Dec 23, 2022
PHP library to collect and manipulate gettext (.po, .mo, .php, .json, etc)

Gettext Note: this is the documentation of the new 5.x version. Go to 4.x branch if you're looking for the old 4.x version Created by Oscar Otero http

Gettext 651 Dec 29, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Cashier and Laravel Nova.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Dec 29, 2022
Provides support for message translation and localization for dates and numbers.

The I18n library provides a I18n service locator that can be used for setting the current locale, building translation bundles and translating messages. Additionally, it provides the Time and Number classes which can be used to output dates, currencies and any numbers in the right format for the specified locale.

CakePHP 26 Oct 22, 2022
Easy multilingual urls and redirection support for the Laravel framework

Linguist - Multilingual urls and redirects for Laravel This package provides an easy multilingual urls and redirection support for the Laravel framewo

Tanel Tammik 189 Jul 18, 2022
Automatically translate and review your content via Lokalise

This extension will work as a bridge between Pimcore and Lokalise for the purpose of automating the whole translation workflow. Thus eliminating most of the manual steps in the task along with availing quality translation-review service from Lokalise.

Pravin chaudhary 6 Jan 10, 2022
Filament Translations - Manage your translation with DB and cache

Filament Translations Manage your translation with DB and cache, you can scan your languages tags like trans(), __(), and get the string inside and tr

Fady Mondy 32 Nov 28, 2022
A convenience package for php multilingual web applications

PHP Translation Install Lifecycle Configuration Content of PHP File Content of Json File Content Of Database Table Use Of Array Or Json Database PHP T

Ahmet Barut 3 Jul 7, 2022
A PHP internationalization library, powered by CLDR data.

intl A PHP 7.1+ internationalization library, powered by CLDR data. Features: NumberFormatter and CurrencyFormatter, inspired by intl. Currencies Lang

Commerce Guys 351 Dec 30, 2022
Composer package providing translation features for PHP apps

PHP translation This is a composer package providing translation support for PHP applications. It is similar to gettext, in usage, with these differen

Sérgio Carvalho 0 Aug 15, 2022
YCOM Impersonate. Login as selected YCOM user 🧙‍♂️in frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022