Pull to refresh

Делаем свои плагины для Chrome мультиязычными

Reading time2 min
Views2.1K
image
У вас есть плагин для Chrome на русском или на английском языке, но аудитория плагина намного шире и не только на выбранном вами языке? Тогда прошу подкат.

Мы будем делать поддержку русского и английского языка, но никто вам не мешает делать поддержку и других языков
Для того что бы сделать ваш плагин мультиязычным с начало мы идем в manifest.json
И добавляем следующие строчки:
Эта строчка указывает какой язык будет использоваться по умолчанию, в случаи того если перевод для языка пользователя недоступен.
"default_locale": "en",
Теперь же в место стандартного описания плагина пишем
"description": "__MSG_chrome_extension_description__",
Так же можно сделать и для имени плагина
"name": "__MSG_chrome_extension_name__",
После манипуляций все выглядеть будет примерно так
image

Создание файлов локализации


Для этого в корне плагина создаем папку с именем _locales
В ней создаем папки en и ru
В папках создаем файл messages.json
Со следующим содержанием
{
"chrome_extension_description": {
"message": "Описание плагина."
},
"chrome_extension_name": {
"message": "Имя плагина"
},
"some_string": {
"message": "Текст"
},

"lang": {
"message": "ru"
}
}

В папке en в таком же файле пишем тоже самое но уже на английском
{
"chrome_extension_description": {
"message": "Extension description."
},
"chrome_extension_name": {
"message": "Plugin name"
},
"some_string": {
"message": "some text"
},

"lang": {
"message": "en"
}
}

Если же вы захотите сделать поддержку какого либо еще языка то создайте соответствующую папку и файл в ней, и обязательно изменить значение последних строчек
"lang": {
"message": "en"
}


Вот какие языки поддерживает Chrome
am ar bg bn ca cs da de el en en_GB en_US es es_419 et fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr nb nl or pl pt pt_BR pt_PT ro ru sk sl sr sv sw ta te th tr uk vi zh zh_CN zh_TW

Теперь перейдем в настройки плагина а именно в options.html, допустим вы хотите сделать заголовок на разных языках для этого внутри тега пишем

Этот оператор общается с Api chrome и берет из файлов созданными нами выше нужные нам параметры

И вернемся к мультиязычному заголовку.

Пусть до этого в плагине в заголовке было написано «some text»
Что бы эта надпись была на нескольких языках заменим её на

Данная строчка обращается к функции lang и из файлов созданных ранее берет параметр «some_string»

Параметр в файлах указывается следующим образом:

"some_string": {
"message": "some text"
},


А теперь для того что бы перевести все надписи в мультиязычные с начала дописываем в файлах их значение, затем пишем в место исходных текстов строчку

Вот и все.
Живой пример работы мультиязычности плагин
Auto HD for YouTube
Tags:
Hubs:
+34
Comments11

Articles