Yii2 I18N Google & Yandex translation services integration ¶
Description ¶
This extension makes it possible to automatically translate messages using external services.
Google ¶
With Google Translate, you can dynamically translate text between thousands of language pairs. The Google Translate API lets websites and programs integrate with Google Translate programmatically. Google Translate API is available as a paid service. See the Pricing and FAQ pages for details.
Yandex ¶
The API provides access to the Yandex online machine translation service. It supports more than 40 languages and can translate separate words or complete texts. The API makes it possible to embed Yandex.Translate in a mobile app or web service for end users. Or translate large quantities of text, such as technical documentation.
Installation ¶
The preferred way to install this extension is through composer.
To install, either run
$ php composer.phar require conquer/i18n "*"
or add
"conquer/i18n": "*"
to the `
require`
section of your composer.json
file.
To create database tables run migration command ~~~ $ yii migrate --migrationPath=@conquer/i18n/migrations ~~~
Usage ¶
You need to configure Module and i18n component
$config = [
'bootstrap' => ['translate'],
'language' => 'ru',
'modules' => [
'translate' => 'conquer\i18n\Module'
],
'components' => [
'i18n' => [
'class' => 'yii\i18n\I18N',
'translations' => [
'*' => [
'class' => 'conquer\i18n\MessageSource',
'translator' => [
// 'class'=>'conquer\i18n\translators\GoogleTranslator',
// 'apiKey' => 'obtain API key in the google developer console',
'class'=>'conquer\i18n\translators\YandexTranslator',
'apiKey' => '[yandex form](https://tech.yandex.com/keys/get/?service=trnsl)',
],
],
],
],
],
];
Use \Yii::t function to translate messages
<h1><?= \Yii::t('app', 'Congratulations!') ?></h1>
*""** Translation category is used by default for all non-translated messages.
You can configure a separate category for the translation of messages by external translator.
'components' => [
'i18n' => [
'class' => 'yii\i18n\I18N',
'translations' => [
'yandex' => [
'class' => 'conquer\i18n\MessageSource',
'translator' => [
'class'=>'conquer\i18n\translators\YandexTranslator',
'apiKey' => '[yandex form](https://tech.yandex.com/keys/get/?service=trnsl)',
],
],
],
],
],
Use \Yii::t function to translate messages in "yandex" category
<h1><?= \Yii::t('yandex', 'Congratulations!') ?></h1>
License ¶
conquer/i18n is released under the MIT License. See the bundled LICENSE.md
for details.
Question!
how does the end user choose the language? or, how does the website know what language to translate to?
Answer!
You can read about this here: https://github.com/samdark/yii2-cookbook/blob/master/book/i18n-selecting-application-language.md
error occured : Maximum execution time of 30 seconds exceeded.
whene i use language selector
```php
'bootstrap' => [
'translate', [ 'class' => 'frontend\components\LanguageSelector', 'supportedLanguages' => ['en_US', 'hi-HI'], ], ],
in main.php in frontend config folder. i follow this link [: https://github.com/samdark/yii2-cookbook/blob/master/book/i18n-selecting-application-language.md](). whats going wrong in it.
i install this extension, after install this extension my website become very slow, normal execution time was 2.67 sec and after using this its take 57 second to 88 seccond.
any solution for this problem.
please reply, thanks in advance
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.