Giter VIP home page Giter VIP logo

google-translate-custom-widget's People

Contributors

get-web avatar vad1s0n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

google-translate-custom-widget's Issues

Как запоминать направление перевода для всего сайта со всеми поддиректориями?

Сейчас перевод применяется к страницам той директории, где была нажата кнопка перевода. Вероятно, дело в куках и в пути, который в них прописывается. Как правильно настроить виджет, чтобы после нажатия на кнопку перевода на любой странице сайта любой директории перевод применялся и ко ВСЕМ остальным страницам? И, соответственно, сбрасывался при необходимости на дефолтный язык для всего сайта сразу.

сайт/item/1.html - переводятся все страницы в item/ , но не переводятся, например в сайт/info/
Сайт с ЧПУ

feature_request(cookies): “Reading cookie in cross-site context will be blocked in future Chrome versions”

1. Проблема

Я получаю в панели “Issues” браузера Chrome сообщения:

Reading cookie in cross-site context will be blocked in future Chrome versions

Setting cookie in cross-site context will be blocked in future Chrome versions

Видимо, в Google Translate Custom Widget (GTCW) необходимо вносить изменения, поскольку, как понимаю, в нынешнем виде виджет перестанет функционировать в будущих версиях Chrome.

2. Шаги для воспроизведения

Запускаем новую версию Chromium или Chrome (желательно, с выключенными расширениями) → открываем демо-страницу GTCW → заходим в Developer Tools (Ctrl+Shift+I) → Issues.

3. Поведение

3.1. Желательное

Никаких предупреждений.

3.2. Текущее

Reading cookie

Reading cookie in cross-site context will be blocked in future Chrome versions

Cookies with the SameSite=None; Secure and not Partitioned attributes that operate in cross-site contexts are third-party cookies. In future Chrome versions, reading third-party cookies will be blocked. This behavior protects user data from cross-site tracking.
Please refer to the article linked to learn more about preparing your site to avoid potential breakage.

6 cookies
Name	Domain & Path
__Secure-3PAPISID	.google.com/
__Secure-3PSID	.google.com/
1P_JAR	.google.com/
NID	.google.com/
__Secure-3PSIDTS	.google.com/
__Secure-3PSIDCC	.google.com/

Learn more: Prepare for phasing out third-party cookies

Setting cookie

Cookies with the SameSite=None; Secure and not Partitioned attributes that operate in cross-site contexts are third-party cookies. In future Chrome versions, setting third-party cookies will be blocked. This behavior protects user data from cross-site tracking.
Please refer to the article linked to learn more about preparing your site to avoid potential breakage.

1 cookie
Name	Domain & Path
__Secure-3PSIDCC	.google.com/

Learn more: Prepare for phasing out third-party cookies

Внизу сообщений содержится ссылка на статью “Prepare for phasing out third-party cookies” на сайте “Google for Developers”.

4. Среда тестирования

  1. Chromium Version 120.0.6099.71 (Official Build) (64-bit)

Спасибо.

Перевод сразу

Здравствуйте. Спасибо за отличный виджет!

Подскажите.
Я определяю язык браузера пользователя так
$userlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
и если он отличен от языков СНГ, то вывожу флажки.

Как сделать так, чтобы сразу переводить на язык пользователя? И при этом дать возможность пользователю самому выбрать нужный ему язык.
googleTranslateConfig.lang это ведь язык источника? А язык, на который нужно перевести по умолчанию, как передать?

UPD:
Сделал пока так. Может, кому то будет полезным.

$userlang = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
$rulangs = array('ru','be','uk');
if (!in_array($userlang, $rulangs)){
	if (empty($_COOKIE["googtrans"])){
		setcookie("googtrans", "/ru/".$userlang);
	}
}

Как сделать куки для всего сайта, а не для каждой страницы?

Для каждой страницы ставятся отдельные куки.
Что делать что бы куки были одни для всего сайта?
Меняешь язык на одной странице, возвращаешся на прошлую страницу, а там опять тот же язык.
Можно ли сделать так, что бы если сменил язык, то это применилось бы ко всему сайту?

Проблема перевода на субдоменах

Похоже есть проблема с сохранением путей куки для поддоменов. На основном сайте переводы переключаются, а на субдоменах выставляется один и не меняется.
there is a problem with changing the translation on subdomains. the first posted transfer is saved and does not change

Некоректная работа на поддоменах

На некоторых серверах, свои куки записываются только на поддомен, а для основного домен виджет сам назначает куки и не перезаписывает.

feature_request(performance): load scripts by click/tap

1. Запрос

Было бы неплохо иметь возможность загрузки всех скриптов, необходимых для работы Google Translate Custom Widget (GTCW), при клике/тапе по любому из флагов, а не при загрузке веб-страницы.

По моему мнению, лучше, если это было бы реализовано в поведении по умолчанию, но если нет — неплохо было бы иметь опцию.

2. Пример желаемого поведения

2.1. Первое посещение страницы

Посетитель сайта заходит на веб-страницу с GTCW → никакие скрипты, необходимые для работы GTCW (кроме, конечно, скрипта, проверяющего наличие необходимых кук и запускающего загрузку других скриптов по клику/тапу), не загружаются.

2.2. Клик/тап по флагу

Посетитель кликает или тапает по любому из флагов:

  1. Загружаются скрипты:

    https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js
    js/google-translate.js
    
  2. После загрузки скриптов веб-страница переводится на нужный язык. Например, если пользователь кликнул по флагу Франции, то после загрузки скриптов страница сразу переводится на французский язык.

  3. При последующих кликах/тапах по флагам поведение GTCW остаётся таким же, как и сейчас.

2.3. Посещение других страниц сайта

Посетитель переходит на другую страницу сайта с GTCW, → скрипт на странице проверяет, существуют ли у посетителя необходимые куки:

Если посетитель сайта прежде не кликал/тапал по флагам и/или он очистил куки для сайта:

    реализуется поведение из п. 2.1, то есть скрипты, необходимые для работы GTCW, не загружаются.

Если посетитель сайта прежде кликал/тапал по флагам и он не очищал куки для сайта:

    реализуется нынешнее поведение, т.е. загружаются скрипты GTCW и страница автоматически переводится на прежде выбранный пользователем язык.

3. Причина желательности реализации запрошенного поведения

Производительность сайта.

Демо-страница GTCW на PageSpeed Insights:

GTCW blocking rendering web-page

GTCW non-used JavaScript

Клик по Открыть карту эффективности на странице PageSpeed Insights:

GTCW treemap

element.js и скрипты, которые element.js тянет за собой, имеют гигантский совокупный размер, например, в разы превышающий размер всех остальных вместе взятых скриптов на страницах моего сайта. В примере с демо-страницей GTCW, как мы видим, эти скрипты более чем на секунду заблокировали первую отрисовку страницы. Неплохо было бы, если б скрипты для GTCW загружались только тогда, когда они нужны — т.е. когда посетитель сайта собирается переводить страницу.

Кроме того, GTCW нужен не всем посетителям, а на некоторых сайтах, возможно, необходим лишь меньшинству пользователей. С добавлением GTCW на сайт есть риск из-за замедления загрузки страницы потерять больше посетителей, чем приобрести. Загрузка по умолчанию гигантских скриптов, необходимых не всегда и не всем — вряд ли оптимальный вариант.

4. Примечание

Я не утверждаю, что требуется именно такая реализация, какая у меня описана в разделе 2. Если поведение, где скрипты GTCW не загружаются при первом посещении сайта и для пользователей, которым они не нужны, можно реализовать другим, лучшим способом, это было бы отлично.

Спасибо.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.