Jump to content
  • entries
    3
  • comments
    19
  • views
    752

Лайфхак и закон "Про мову"

Vladzimir

959 views

Знаете как обычно это бывает?

Роблю, роблю. Чую будять.

Так и UANet внезапно встал перед дилемой о локализации по умолчанию на украинский язык.

Кто-то про данный закон не знал, кто-то думал что пронесет и его отменят, а кто-то (например как я) попросту не успевают сделать перевод своего маленького магазинчика в 30000 наименований.

Но тем не менее. Dura lex sed lex

Как в же в пару строк кода сделать свой сайт таким чтоб он соответствовал данному закону?

Легко. Качаем https://github.com/get-web/google-translate-custom-widget

Подключаем в хедере стили и скрипты

В футер добавляем html-код с языками

И в google-translate.js вносим единственное изменение

const googleTranslateConfig = {
    /* Original language */
    lang: "ru",
    /* The language we translate into on the first visit*/
    /* Язык, на который переводим при первом посещении */
    langFirstVisit: 'uk',
    /* Если скрипт не работает на поддомене, 
    раскомментируйте и
    укажите основной домен в свойстве domain */
    /* domain: "Get-Web.Site" */
};

Все. Мы все молодцы.

  • +1 6


11 Comments


Recommended Comments

Ну это, конечно, решение :), но в такой ситуации, боюсь украиский трафик вам особо не светит :). Как временное решение - возможно. Но переводить все равно нужно будет :)

Share this comment


Link to comment
8 минут назад, pawana сказал:

Ну это, конечно, решение :), но в такой ситуации, боюсь украиский трафик вам особо не светит :). Как временное решение - возможно. Но переводить все равно нужно будет :)

Как показывает практика, на текущий момент, поисковые запросы по языкам распределяются таким образом:

  • ру - 90%
  • уа - 10%

Надеюсь что современем эта ситуация изменится в лучшеую сторону. Хотя бы 50/50. Потому что работы увеличивается в 2 раза, а продажи увеличиваются всего на 10%.

И да, это временный костыль. Хотя частый случай, что временное становится постоянным.

Share this comment


Link to comment

Скоро будет Обнова мультиязыка и там закроем этот вопрос. 

Share this comment


Link to comment

Подскажите, я так понял согласно закона сайт должен по умолчанию загружаться на украинском языке, то есть при загрузке сайта по умолчанию на русском и  возможности выбора языка рус/укр не достаточно, верно?

Как-то печально, как уже писали Выше подавляющее большинство запросов на русском языке...

Share this comment


Link to comment

Опа, мой скрипт пригодился)

Кстати переменная оригинального языка  (lang: "ru",) не просто так выведена, в случае если у сайта есть несколько родных вариантов перевода в эту переменную следует записать текущий язык и если он совпадает с тем на который должен переводить виджет, то будет оставлен оригинальный перевод, то есть виджет не ограничивает стандартный функционал ни в чем. Все думал написать модуль для opencart, но так как опыта в бекенде мало не хочу позориться)

  • +1 2

Share this comment


Link to comment
17 минут назад, GetWeb сказал:

Опа, мой скрипт пригодился)

Кстати переменная оригинального языка  (lang: "ru",) не просто так выведена, в случае если у сайта есть несколько родных вариантов перевода в эту переменную следует записать текущий язык и если он совпадает с тем на который должен переводить виджет, то будет оставлен оригинальный перевод, то есть виджет не ограничивает стандартный функционал ни в чем. Все думал написать модуль для opencart, но так как опыта в бекенде мало не хочу позориться)

Оп-па автор!

За скрипт спасибо.

Но у себя я обнаружил несколько проблем с куками.

Они пишутся в привязке к категории, а это не есть хорошо.

И они пишутся двумя способами сразу, а читаются только одним. Из-за этого переключатель языков работает только один раз. Т.е. нельзя переключиться обратно.

У себя я сделал так

function TranslateCookieHandler(val, domain) {
    // Записываем куки /язык_который_переводим/язык_на_который_переводим
    $.cookie("googtrans", val, {
        path: "/",
    });
}

И в стилях добавил

.goog-text-highlight {
    background-color: inherit !important;
    box-shadow: none !important;
    box-sizing: inherit !important;
}

 

Share this comment


Link to comment
13 минут назад, GetWeb сказал:

Опа, мой скрипт пригодился)

Кстати переменная оригинального языка  (lang: "ru",) не просто так выведена, в случае если у сайта есть несколько родных вариантов перевода в эту переменную следует записать текущий язык и если он совпадает с тем на который должен переводить виджет, то будет оставлен оригинальный перевод, то есть виджет не ограничивает стандартный функционал ни в чем. Все думал написать модуль для opencart, но так как опыта в бекенде мало не хочу позориться)

Как вариант, хранить не в куках,  а локал сторадж
Т по онлоад грузить еше свой собственный силь, который отрубит onhover стилизацию

Share this comment


Link to comment
31 минуту назад, Vladzimir сказал:

Они пишутся в привязке к категории, а это не есть хорошо.

Вы пробовали указать адрес домена? Обычно это помогает. Еще бывает проблема связанная с настройками сервера, когда кукам назначается HttpOnly, но похоже это не ваш случай.

 

44 минуты назад, Vladzimir сказал:

И они пишутся двумя способами сразу, а читаются только одним.

Даже 4-мя, если передан домен. Мой скрипт это надстройка до инициализации самого виджета и для корректного перевода важно как сам виджет будет читать куки на что мы уже повлиять не можем, с нашей стороны главное правильно записать. Ваше решение с path: "/", вполне корректно и изначально примерно так и было, но практика показала что с ним проблемы встречались чаще, поэтому пока остановился на такой реализации.

 

 

Share this comment


Link to comment
1 час назад, chukcha сказал:

Как вариант, хранить не в куках,  а локал сторадж

На то как работает виджет мы никак не можем повлиять, он пишет куки, а мы просто вклиниваемся в этот процесс, когда сами переназначаем их. Подробнее о самой концепции можно прочитать тут https://habr.com/ru/post/438588/

Edited by GetWeb

Share this comment


Link to comment

google-translate.js:

Это локальный скрипт и в нем можно юзать не куки

Share this comment


Link to comment
5 минут назад, chukcha сказал:

google-translate.js:

Это локальный скрипт и в нем можно юзать не куки

Я не совсем понимаю о чем речь. lang: "ru" это один из параметров в который мы пишем текущий язык, а затем решаем что делать с этой информацией, зачем локальное хранилище? В работе с виджетом оно не поможет потому что виджет работает только с куками, а раз уж мы используем куки, то опять возникает вопрос зачем локальное хранилище использовать?

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.