abeliani/translated-slug-helper

帮助通过一组驱动程序获取有效的翻译或转写 slug

v1.0.0 2024-05-08 21:48 UTC

This package is auto-updated.

Last update: 2024-09-08 22:36:08 UTC


README

该软件包使用 StringTranslatorSlugHelper 库。

安装

composer require abeliani/translated-slug-helper

示例

离线驱动程序的示例

博客文章通常需要一个 slug 来生成 URL。我们可以使用一个转写驱动程序,它简单地转写符号表,例如:u-у 和反之亦然。

$slug = new TranslatedSlugHelper(
    new Settings('ru'),
    new TranslatedBy(Translit::class)
);

print $slug->from('Привет мир!', 'en'); // privet-mir

在线驱动程序的示例

在线驱动程序执行文本翻译。

$slug = new TranslatedSlugHelper(
    new Settings('ru', ['a', 'an']), // to remove words from slug (eg. a, an) we can pass them by array
    new TranslatedBy(MyMemory::class, ['apiKey' => 'someapikey'])
);

print $slug->from('Привет мир!', 'en'); // hello-world

驱动程序链示例

在线驱动程序可能突然不可用(例如),在这种情况下,我们可以通过链沿着一个驱动程序传递到另一个驱动程序进行字符串翻译。

$chain = [
   new TranslatedBy(MyMemory::class, ['apiKey' => 'someapikey']),
   new TranslatedBy(Translit::class),
];

$slug = new TranslatedSlugHelper(
    new Settings('ru'),
    ...$chain,
);

print $slug->from('Привет мир!', 'en'); // if MyMemory service is available: hello-world | otherwise by transilt driver: privet-mir

如果您需要更改单词分隔符,您可以通过设置对象传递它

// Passing new divider +
new Settings('ru', [], '+')