Merge branch 'development' into production

This commit is contained in:
ilyaigpetrov 2019-09-07 16:37:10 +00:00
commit 4e736bf403
8 changed files with 230 additions and 44 deletions

View File

@ -29,6 +29,8 @@
{ // Private namespace starts.
const ifRu = chrome.i18n.getMessage('@@ui_locale').startsWith('ru');
console.log('Russian?', ifRu);
const mandatory = window.utils.mandatory;
const throwIfError = window.utils.throwIfError;
const chromified = window.utils.chromified;
@ -125,10 +127,16 @@
const pacMods = window.apis.pacKitchen.getPacMods();
if (!pacMods.filteredCustomsString) {
addWarning(
\`
ifRu
? \`
Не найдено СВОИХ прокси. Этот PAC-скрипт
работает только со <a href="https://git.io/ac-own-proxy">СВОИМИ прокси</a>
(по умолчанию будет использоваться локальный <a href="https://git.io/ac-tor">Tor</a>).
\`
: \`
Couldn't find OWN proxies. This PAC-script
works only with <a href="https://git.io/ac-own-proxy">OWN proxies</a>
(by default local <a href="https://git.io/ac-tor">Tor</a> will be used).
\`,
);
}
@ -142,8 +150,10 @@
if (ifWasEverModified) {
addWarning(
'Ваш PAC-скрипт не нуждается в обновлении. Его дата: ' +
lastModifiedStr,
(ifRu
? 'Ваш PAC-скрипт не нуждается в обновлении. Его дата: '
: 'Your PAC-script doesn\\'t need to be updated. It\\'s date: '
) + lastModifiedStr,
);
const res = {lastModified: lastModifiedStr};
return cb(null, res);
@ -178,7 +188,7 @@
},
clarifyThen(
'Не удалось скачать PAC-скрипт с адресов: [ '
chrome.i18n.getMessage('FailedToDownloadPacScriptFromAddresses') + ': [ '
+ provider.pacUrls.join(' , ') + ' ].',
cb,
),
@ -199,20 +209,36 @@
// provider is this or that (distinct it from others).
distinctKey: 'Antizapret',
label: chrome.i18n.getMessage('Antizapret'),
desc: \`Альтернативный PAC-скрипт от стороннего разработчика.
desc: ifRu
? \`Основной PAC-скрипт от автора проекта «Антизапрет».
Охватывет меньше сайтов.
Блокировка определяется по доменному имени.
<br/> <a href="https://rebrand.ly/ac-pacs">Сравнение PAC-скриптов</a>.\`,
Блокировка определяется по доменному имени и при необходимости по IP.
<br/> <a href="https://rebrand.ly/ac-pacs">Сравнение PAC-скриптов</a>.
\`
: \`The main PAC-script from the author of project "Antizapret"\.
Covers fewer sites.
Block is detected based on a domain name and, if necessary, on an IP.
<br/> <a href="https://rebrand.ly/ac-pacs">Comparison of PAC-scripts (ru)</a>.
\`,
order: 0,
pacUrls: ['https://antizapret.prostovpn.org/proxy.pac'],
},
Антицензорити: {
distinctKey: 'Anticensority',
label: chrome.i18n.getMessage('Anticensority'),
desc: \`Основной PAC-скрипт от автора расширения.
desc: ifRu
? \`Альтернативный PAC-скрипт от автора расширения.
Охватывает больше сайтов.
Блокировка определятся по доменному имени или IP адресу.
<br/> <a href="https://rebrand.ly/ac-pacs">Сравнение PAC-скриптов</a>.\`,
Подходит для провайдеров, блокирующих все сайты на одном IP.
<br/> <a href="https://rebrand.ly/ac-pacs">Сравнение PAC-скриптов</a>.
\`
: \`Alternative PAC-script from the author of this extension.
Covers more sites.
Block is detected based on a domain name and on an IP address.
Better fits providers that block all sites on one IP.
<br/> <a href="https://rebrand.ly/ac-pacs">Comparison of PAC-scripts (ru)</a>.
\`,
order: 1,
/*
@ -225,7 +251,9 @@
onlyOwnSites: {
distinctKey: 'onlyOwnSites',
label: chrome.i18n.getMessage('Only_own_sites_and_only_own_proxies'),
desc: 'Проксируются только добавленные вручную сайты через СВОИ вручную добавленные прокси или через локальный Tor.',
desc: ifRu
? 'Проксируются только добавленные вручную адреса через СВОИ вручную добавленные прокси или через локальный Tor.'
: 'Only added manually urls are proxied via your OWN manually added proxies or via Tor.',
order: 99,
pacUrls: [
'data:application/x-ns-proxy-autoconfig,' + escape('function FindProxyForURL(){ return "DIRECT"; }'),
@ -258,7 +286,7 @@
const upDate = new Date(this.lastPacUpdateStamp).toLocaleString('ru-RU')
.replace(/:\\d+$/, '').replace(/\\.\\d{4}/, '');
chrome.browserAction.setTitle({
title: \`Обновлялись \${upDate} | Версия \${window.apis.version.build}\`,
title: \`\${chrome.i18n.getMessage('Updated')} \${upDate} | \${chrome.i18n.getMessage('Version')} \${window.apis.version.build}\`,
});
},
@ -353,7 +381,7 @@
if (key === null) {
// No pac provider set.
return clarifyThen('Сперва выберите PAC-провайдера.', cb);
return clarifyThen(chrome.i18n.getMessage('ChoosePacProviderFirstD'), cb);
}
const pacProvider = this.getPacProvider(key);

View File

@ -17,6 +17,39 @@
"update": {
"message": "update"
},
"UpdatingDDD": {
"message": "Updating..."
},
"UpdatedD": {
"message": "Updated."
},
"DisablingDDD": {
"message": "Disabling..."
},
"DisabledD": {
"message": "Disabled."
},
"InstallingDDD": {
"message": "Installing..."
},
"PacScriptWasInstalledD": {
"message": "PAC-script was installed."
},
"Version": {
"message": "Version"
},
"FullVersion": {
"message": "Full version"
},
"VersionForSlowMachines": {
"message": "Version for slow machines"
},
"FailedToDownloadPacScriptFromAddresses": {
"message": "Failed to download PAC-script from addresses"
},
"ChoosePacProviderFirstD": {
"message": "Choose PAC-provider first."
},
"ProblemsQ": {
"message": "Problems?"
},
@ -58,5 +91,50 @@
},
"Donate": {
"message": "Donate"
},
"Updated": {
"message": "Updated"
},
"ago": {
"message": "ago"
},
"never": {
"message": "never"
},
"ms": {
"message": "ms"
},
"s": {
"message": "s"
},
"min": {
"message": "min"
},
"h": {
"message": "h"
},
"d": {
"message": "d"
},
"w": {
"message": "w"
},
"m": {
"message": "m"
},
"ProxyTheDomainNameBelowQ": {
"message": "Proxy the domain name below?"
},
"auto": {
"message": "auto"
},
"yes": {
"message": "yes"
},
"no": {
"message": "no"
},
"noOwnProxiesError": {
"message": "Proxying of OWN sites is possible only via OWN proxies. No own proxies found that satisfy your requirements."
}
}

View File

@ -17,6 +17,39 @@
"update": {
"message": "обновить"
},
"UpdatingDDD": {
"message": "Обновляем..."
},
"UpdatedD": {
"message": "Обновлено."
},
"DisablingDDD": {
"message": "Отключение..."
},
"DisabledD": {
"message": "Отключено."
},
"InstallingDDD": {
"message": "Установка..."
},
"PacScriptWasInstalledD": {
"message": "PAC-скрипт установлен."
},
"Version": {
"message": "Версия"
},
"FullVersion": {
"message": "Полная версия"
},
"VersionForSlowMachines": {
"message": "Версия для слабых машин"
},
"FailedToDownloadPacScriptFromAddresses": {
"message": "Не удалось скачать PAC-скрипт с адресов"
},
"ChoosePacProviderFirstD": {
"message": "Сперва выберите PAC-провайдера."
},
"ProblemsQ": {
"message": "Проблемы?"
},
@ -58,5 +91,50 @@
},
"Donate": {
"message": "Поддержать"
},
"Updated": {
"message": "Обновлялись"
},
"ago": {
"message": "назад"
},
"never": {
"message": "никогда"
},
"ms": {
"message": "мс"
},
"s": {
"message": "с"
},
"min": {
"message": "мин"
},
"h": {
"message": "ч"
},
"d": {
"message": "дн"
},
"w": {
"message": " недель"
},
"m": {
"message": " месяцев"
},
"ProxyTheDomainNameBelowQ": {
"message": "Проксировать указанное доменное имя?"
},
"auto": {
"message": "авто"
},
"yes": {
"message": "да"
},
"no": {
"message": "нет"
},
"noOwnProxiesError": {
"message": "Проксировать СВОИ сайты можно только при наличии СВОИХ прокси. Нет своих прокси, удовлетворяющих вашим требованиям."
}
}

View File

@ -137,7 +137,7 @@ export default function getExcEditor(theState) {
case 'this-no':
if (ifYesClicked && !pacMods.filteredCustomsString) {
this.props.funs.showErrors( new TypeError(
'Проксировать СВОИ сайты можно только при наличии СВОИХ прокси. Нет своих прокси, удовлетворяющих вашим требованиям.'
chrome.i18n.getMessage('noOwnProxiesError'),
));
return false;
}
@ -293,7 +293,7 @@ export default function getExcEditor(theState) {
return (
<section style="padding-bottom: 1em;">
<div>Проксировать указанный сайт?</div>
<div>{chrome.i18n.getMessage('ProxyTheDomainNameBelowQ')}</div>
<div id="exc-address-container">
<div id="exc-address" class={inputProxyingState !== undefined ? ( inputProxyingState === true ? scopedCss.ifYes : scopedCss.ifNo ) : ''}>
<span>*.</span><input placeholder="navalny.com" list="exc-list" id="exc-editor"
@ -327,19 +327,19 @@ export default function getExcEditor(theState) {
<li><input id="this-auto" type="radio" checked name="if-proxy-this-site" onClick={this.handleRadioClick}/>{' '}
<label for="this-auto">{/*<span class="emoji">🔄(looks fat)</span>*/}<svg
class="icon"
style="position: relative; top: 0.15em;"><use xlink:href="#iconLoopRound"></use></svg>&nbsp;авто</label>
style="position: relative; top: 0.15em;"><use xlink:href="#iconLoopRound"></use></svg>&nbsp;{chrome.i18n.getMessage('auto')}</label>
</li>
<li>
<input id="this-yes" type="radio" name="if-proxy-this-site" checked={inputProxyingState === true} onClick={this.handleRadioClick}/>
{' '}<label for="this-yes">
<span
class="emoji____buggy"
></span>&nbsp;да
></span>&nbsp;{chrome.i18n.getMessage('yes')}
</label>
</li>
<li>
<input id="this-no" type="radio" name="if-proxy-this-site" checked={inputProxyingState === false} onClick={this.handleRadioClick}/>
{' '}<label for="this-no"><span class="emoji"></span>&nbsp;нет</label></li>
{' '}<label for="this-no"><span class="emoji"></span>&nbsp;{chrome.i18n.getMessage('no')}</label></li>
</ol>
</section>
);

View File

@ -22,17 +22,17 @@ export default function getLastUpdateDate(theState) {
getDate(antiCensorRu) {
let dateForUser = 'никогда';
let dateForUser = chrome.i18n.getMessage('never');
if( antiCensorRu.lastPacUpdateStamp ) {
let diff = Date.now() - antiCensorRu.lastPacUpdateStamp;
let units = 'мс';
let units = chrome.i18n.getMessage('ms');
const gauges = [
[1000, 'с'],
[60, 'мин'],
[60, 'ч'],
[24, 'дн'],
[7, ' недель'],
[4, ' месяцев'],
[1000, chrome.i18n.getMessage('s')],
[60, chrome.i18n.getMessage('min')],
[60, chrome.i18n.getMessage('h')],
[24, chrome.i18n.getMessage('d')],
[7, chrome.i18n.getMessage('w')],
[4, chrome.i18n.getMessage('m')],
];
for(const g of gauges) {
const diffy = Math.floor(diff / g[0]);
@ -41,10 +41,10 @@ export default function getLastUpdateDate(theState) {
diff = diffy;
units = g[1];
}
dateForUser = diff + units + ' назад';
dateForUser = diff + units + ' ' + chrome.i18n.getMessage('ago');
}
return {
text: `${dateForUser} / ${antiCensorRu.pacUpdatePeriodInMinutes/60}ч`,
text: `${dateForUser} / ${antiCensorRu.pacUpdatePeriodInMinutes/60}${chrome.i18n.getMessage('h')}`,
title: new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU'),
};
@ -53,7 +53,7 @@ export default function getLastUpdateDate(theState) {
render(props) {
const date = this.getDate(props.apis.antiCensorRu);
return (<div>Обновлялись: <span class="updateDate" title={date.title}>{ date.text }</span></div>);
return (<div>{chrome.i18n.getMessage('Updated')}: <span class="updateDate" title={date.title}>{ date.text }</span></div>);
}

View File

@ -62,9 +62,9 @@ export default function getPacChooser(theState) {
this.updatePac = function updatePac(onSuccess) {
props.funs.conduct(
'Обновляем...',
chrome.i18n.getMessage('UpdatingDDD'),
(cb) => theState.apis.antiCensorRu.syncWithPacProviderAsync(cb),
'Обновлено.',
chrome.i18n.getMessage('UpdatedD'),
onSuccess
);
};
@ -101,17 +101,17 @@ export default function getPacChooser(theState) {
}
if (pacKey === 'none') {
this.props.funs.conduct(
'Отключение...',
chrome.i18n.getMessage('DisablingDDD'),
(cb) => theState.apis.antiCensorRu.clearPacAsync(cb),
'Отключено.',
chrome.i18n.getMessage('DisabledD'),
() => this.setState({ chosenPacName: 'none' }),
checkChosenProvider
);
} else {
this.props.funs.conduct(
'Установка...',
chrome.i18n.getMessage('InstallingDDD'),
(cb) => theState.apis.antiCensorRu.installPacAsync(pacKey, cb),
'PAC-скрипт установлен.',
chrome.i18n.getMessage('PacScriptWasInstalledD'),
checkChosenProvider
);
}
@ -146,9 +146,9 @@ export default function getPacChooser(theState) {
{
props.flags.ifMini
? (<a class={scopedCss.otherVersion + ' emoji'} href="https://rebrand.ly/ac-versions"
title="Полная версия">🏋</a>)
title={chrome.i18n.getMessage("FullVersion")}>🏋</a>)
: (<a class={scopedCss.otherVersion + ' emoji'} href="https://rebrand.ly/ac-versions"
title="Версия для слабых машин">🐌</a>)
title={chrome.i18n.getMessage("VersionForSlowMachines")}>🐌</a>)
}
</div>
</div>

View File

@ -32,9 +32,11 @@ export default function append(document, { flags }) {
a:hover {
text-decoration: underline;
}
/*
label {
user-select: none;
}
*/
div, section, header, ul, ol {
margin: 0;
padding: 0;

View File

@ -10,7 +10,7 @@ const pacUrls = [
];
const commonContext = {
version: '1.35',
version: '1.37',
anticensorityPacUrls: [
...pacUrls,
],