Merge pull request #38 from TeaSpeak/develop

merge develop changes
This commit is contained in:
WolverinDEV 2019-03-31 13:23:22 +02:00 committed by GitHub
commit 9c43118f2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 6498 additions and 6487 deletions

View file

@ -296,6 +296,9 @@
} }
function delete_directories(&$error, $path, $dry_run = false) { function delete_directories(&$error, $path, $dry_run = false) {
if(!file_exists($path))
return true;
if(strpos(PHP_OS, "Linux") !== false) { if(strpos(PHP_OS, "Linux") !== false) {
$command = "rm -r " . $path; $command = "rm -r " . $path;
} else if(strpos(PHP_OS, "WINNT") !== false) { } else if(strpos(PHP_OS, "WINNT") !== false) {

View file

@ -13,7 +13,7 @@ if [[ "$#" -ne 3 ]]; then
exit 1 exit 1
fi fi
if [[ ! -d client&&pi/environment/ui-files/ ]]; then if [[ ! -d client/environment/ui-files/ ]]; then
echo "Missing UI Files" echo "Missing UI Files"
exit 1 exit 1
fi fi

View file

@ -1,14 +1,10 @@
{ {
"info": { "info": {
"name": "Russion translation by Vafin, baste on google translate", "name": "Русский язык / Russian language",
"contributors": [ "contributors": [
{ {
"name": "Google Translate, via script by Markus Hadenfeldt", "name": "Google Translate, via script by Markus Hadenfeldt",
"email": "gtr.i18n.client@teaspeak.de" "email": "gtr.i18n.client@teaspeak.de"
},
{
"name": "Vafin",
"email": ""
} }
] ]
}, },
@ -356,7 +352,7 @@
} }
}, },
{ {
"translated": "Speex Narrowband", "translated": "Speex Узкополосный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -365,7 +361,7 @@
} }
}, },
{ {
"translated": "Speex Wideband", "translated": "Speex Широкополосный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -374,16 +370,16 @@
} }
}, },
{ {
"translated": "Speex Ultra Wideband", "translated": "Speex Сверхширокополосный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
"key": { "key": {
"message": "Speex Ultra Wideband" "message": "Speex Ultra-Wideband"
} }
}, },
{ {
"translated": "КЕЛЬТ моно", "translated": "Монофонический кодек CELT",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -392,7 +388,7 @@
} }
}, },
{ {
"translated": "Опус Голос", "translated": "Голосовые данные Opus",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -401,7 +397,7 @@
} }
}, },
{ {
"translated": "Опус Музыка", "translated": "Музыка Opus",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -950,7 +946,7 @@
} }
}, },
{ {
"translated": "близко", "translated": "Закрыть",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -986,7 +982,7 @@
} }
}, },
{ {
"translated": "права доступа", "translated": "Права доступа",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2084,7 +2080,7 @@
} }
}, },
{ {
"translated": "Улучшить личность", "translated": "Улучшить уровень безопасности идентификатора",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2093,7 +2089,7 @@
} }
}, },
{ {
"translated": "Начните", "translated": "Начать",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2111,7 +2107,7 @@
} }
}, },
{ {
"translated": "Не удалось улучшить личность", "translated": "Не удалось улучшить уровень безопасности",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2120,7 +2116,7 @@
} }
}, },
{ {
"translated": "Не удалось улучшить личность. <br> Ошибка:", "translated": "Не удалось улучшить уровень безопасности идентификатора. <br> Ошибка:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2129,7 +2125,7 @@
} }
}, },
{ {
"translated": "Личность успешно улучшена", "translated": "Уровень безопасности идентификатора успешно улучшен",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2138,7 +2134,7 @@
} }
}, },
{ {
"translated": "Идентичность успешно улучшена до уровня {}", "translated": "Идентификатор успешно улучшен до уровня безопасности {}",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2174,7 +2170,7 @@
} }
}, },
{ {
"translated": "настройки", "translated": "Настройки",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2201,7 +2197,7 @@
} }
}, },
{ {
"translated": "Введите ключ, который вы хотите", "translated": "Выберите клавишу активации голоса и нажмите на нее один раз",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2345,7 +2341,7 @@
} }
}, },
{ {
"translated": "Идентичность импортирована", "translated": "Идентификатор импортирован",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2354,7 +2350,7 @@
} }
}, },
{ {
"translated": "Ваша личность была успешно импортирована!", "translated": "Ваша идентификатор был успешно импортирован!",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2399,7 +2395,7 @@
} }
}, },
{ {
"translated": "Не удалось экспортировать личность", "translated": "Не удалось экспортировать идентификатор",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2408,7 +2404,7 @@
} }
}, },
{ {
"translated": "Не удалось экспортировать и сохранить личность. <br> Ошибка:", "translated": "Не удалось экспортировать и сохранить идентификатор. <br> Ошибка:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2417,7 +2413,7 @@
} }
}, },
{ {
"translated": "Идентичность генерировать", "translated": "Генерировать идентификатор",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2426,7 +2422,7 @@
} }
}, },
{ {
"translated": "Новая личность была успешно создана", "translated": "Новый идентфикатор был успешно создан",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2444,7 +2440,7 @@
} }
}, },
{ {
"translated": "Не удалось сгенерировать личность", "translated": "Не удалось сгенерировать идентификатор",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2453,7 +2449,7 @@
} }
}, },
{ {
"translated": "Не удалось создать новую личность. <br> Ошибка:", "translated": "Не удалось создать новый идентификатор. <br> Ошибка:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2462,7 +2458,7 @@
} }
}, },
{ {
"translated": "Вы действительно хотите создать новую личность и переопределить старую идентичность?", "translated": "Вы действительно хотите создать новый идентификатор и сменить старый?",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -2579,7 +2575,7 @@
} }
}, },
{ {
"translated": "Banlist", "translated": "Бан-лист",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5441,7 +5437,7 @@
} }
}, },
{ {
"translated": "закладки", "translated": "Закладки",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5621,7 +5617,7 @@
} }
}, },
{ {
"translated": "Ник (псевданим)", "translated": "Ваш ник (псевданим)",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5666,7 +5662,7 @@
} }
}, },
{ {
"translated": "Название:", "translated": "Название канала:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5702,7 +5698,7 @@
} }
}, },
{ {
"translated": "стандарт", "translated": "Стандартный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5720,7 +5716,7 @@
} }
}, },
{ {
"translated": "временный", "translated": "Временный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5738,7 +5734,7 @@
} }
}, },
{ {
"translated": "перманентный", "translated": "Постоянный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5765,7 +5761,7 @@
} }
}, },
{ {
"translated": "Необходимая сила разговора:", "translated": "Необходимые права для разговора:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5774,7 +5770,7 @@
} }
}, },
{ {
"translated": "аудио", "translated": "Аудио",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5783,7 +5779,7 @@
} }
}, },
{ {
"translated": "Пресеты", "translated": "Предварительно заданные настройки",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5792,7 +5788,7 @@
} }
}, },
{ {
"translated": "Голос Мобайл", "translated": "Голосовой, мобильный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5801,7 +5797,7 @@
} }
}, },
{ {
"translated": "Voice Desktop", "translated": "Голосовой, ПК",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5819,7 +5815,7 @@
} }
}, },
{ {
"translated": "изготовленный на заказ", "translated": "Пользовательский",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5855,7 +5851,7 @@
} }
}, },
{ {
"translated": "Обычные необходимые полномочия:", "translated": "Обычные необходимые права:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5882,7 +5878,7 @@
} }
}, },
{ {
"translated": "Посмотреть:", "translated": "Подписка:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5900,7 +5896,7 @@
} }
}, },
{ {
"translated": "Подписывайся:", "translated": "Представление описания:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5954,7 +5950,7 @@
} }
}, },
{ {
"translated": "Для передачи файлов необходимы полномочия:", "translated": "Права, необходимы для передачи файлов:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -5963,7 +5959,7 @@
} }
}, },
{ {
"translated": "Просматривать:", "translated": "Просмотр:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6035,7 +6031,7 @@
} }
}, },
{ {
"translated": "Каталог создания:", "translated": "Создать каталог:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6062,7 +6058,7 @@
} }
}, },
{ {
"translated": "продвинутый", "translated": "Дополнительно",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6080,7 +6076,7 @@
} }
}, },
{ {
"translated": "Фонетическое название:", "translated": "Произношение имени:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6089,7 +6085,7 @@
} }
}, },
{ {
"translated": "Удалить задержку:", "translated": "Задержка удаления:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6098,7 +6094,7 @@
} }
}, },
{ {
"translated": "Шифровать голосовые данные", "translated": "Голосовые данные зашифрованы",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6107,7 +6103,7 @@
} }
}, },
{ {
"translated": "Макс пользователей", "translated": "Максимальное число пользователей",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6116,7 +6112,7 @@
} }
}, },
{ {
"translated": "неограниченный", "translated": "Не ограничено",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6134,7 +6130,7 @@
} }
}, },
{ {
"translated": "Пользователи Family Max", "translated": "Максимальное количество пользователей в семье",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6143,7 +6139,7 @@
} }
}, },
{ {
"translated": "унаследованный", "translated": "Наследуемый",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6746,7 +6742,7 @@
} }
}, },
{ {
"translated": "генеральный", "translated": "Основное",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6755,7 +6751,7 @@
} }
}, },
{ {
"translated": "Форум о TeaSpeak", "translated": "Форум TeaSpeak",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6836,7 +6832,7 @@
} }
}, },
{ {
"translated": "Прибор:", "translated": "Устройства:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6845,7 +6841,7 @@
} }
}, },
{ {
"translated": "Обнаружение голосовой активности", "translated": "Режим активации голоса",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6854,7 +6850,7 @@
} }
}, },
{ {
"translated": "Всегда активный", "translated": "Всегда активно",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6863,7 +6859,7 @@
} }
}, },
{ {
"translated": "Обнаружение голосовой активности", "translated": "Активация по голосу",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6872,7 +6868,7 @@
} }
}, },
{ {
"translated": "Нажми чтобы говорить", "translated": "Клавиша активации голоса",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6890,7 +6886,7 @@
} }
}, },
{ {
"translated": "Выберите клавишу для активации голоса:", "translated": "Нажмите кнопку чтобы выбрать клавишу:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6899,7 +6895,7 @@
} }
}, },
{ {
"translated": "неиницализированные", "translated": "Неиницализированные",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6908,7 +6904,7 @@
} }
}, },
{ {
"translated": "Задержка отпускания ключа:", "translated": "Задержка отпускания клавиши:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6935,7 +6931,7 @@
} }
}, },
{ {
"translated": "Оратор", "translated": "Динамики / наушники",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6971,7 +6967,7 @@
} }
}, },
{ {
"translated": "название", "translated": "Название",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -6980,7 +6976,7 @@
} }
}, },
{ {
"translated": "активированная", "translated": "Выкл | Вкл",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7052,7 +7048,7 @@
} }
}, },
{ {
"translated": "профили", "translated": "Профили",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7187,7 +7183,7 @@
} }
}, },
{ {
"translated": "Уровень:", "translated": "Уровень безопасности:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7196,7 +7192,7 @@
} }
}, },
{ {
"translated": "улучшать", "translated": "Улучшить",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7493,7 +7489,7 @@
} }
}, },
{ {
"translated": "разрешения фильтра", "translated": "Фильтр прав",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7520,7 +7516,7 @@
} }
}, },
{ {
"translated": "Название разрешения", "translated": "Право",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7538,7 +7534,7 @@
} }
}, },
{ {
"translated": "Пропускать", "translated": "Пропустить",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7547,7 +7543,7 @@
} }
}, },
{ {
"translated": "сводить на нет", "translated": "Отвергнуть",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7556,7 +7552,7 @@
} }
}, },
{ {
"translated": "Предоставляется", "translated": "Предоставить",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7628,7 +7624,7 @@
} }
}, },
{ {
"translated": "творец", "translated": "Создатель",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7646,7 +7642,7 @@
} }
}, },
{ {
"translated": "перезагружать", "translated": "Обновить список",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -7709,7 +7705,7 @@
} }
}, },
{ {
"translated": "постоянный", "translated": "Постоянный",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8033,7 +8029,7 @@
} }
}, },
{ {
"translated": "Uptime:", "translated": "Время наработки на отказ:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8078,7 +8074,7 @@
} }
}, },
{ {
"translated": "кодек:", "translated": "Кодек:",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8114,7 +8110,7 @@
} }
}, },
{ {
"translated": "подписной", "translated": "Подписан",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8141,7 +8137,7 @@
} }
}, },
{ {
"translated": "Незашифрованная", "translated": "Незашифровано",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8150,7 +8146,7 @@
} }
}, },
{ {
"translated": "Зашифрованные", "translated": "Зашифровано",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8330,7 +8326,7 @@
} }
}, },
{ {
"translated": "Я БЫ", "translated": "ID",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8339,7 +8335,7 @@
} }
}, },
{ {
"translated": "заглавие", "translated": "Название плейлиста",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8357,7 +8353,7 @@
} }
}, },
{ {
"translated": "Используемый", "translated": "Статус",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8429,7 +8425,7 @@
} }
}, },
{ {
"translated": "песни", "translated": "Список воспроизведения",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],
@ -8447,7 +8443,7 @@
} }
}, },
{ {
"translated": "нагруженный", "translated": "Загружен",
"flags": [ "flags": [
"google-translate" "google-translate"
], ],

View file

@ -54,7 +54,7 @@ namespace loader {
} }
export let cache_tag: string | undefined; export let cache_tag: string | undefined;
let current_stage: Stage = Stage.INITIALIZING; let current_stage: Stage = undefined;
const tasks: {[key:number]:Task[]} = {}; const tasks: {[key:number]:Task[]} = {};
export function finished() { export function finished() {
@ -82,7 +82,7 @@ namespace loader {
let begin: number = Date.now(); let begin: number = Date.now();
let end: number; let end: number;
while(current_stage <= Stage.LOADED) { while(current_stage <= Stage.LOADED || typeof(current_stage) === "undefined") {
let current_tasks: Task[] = []; let current_tasks: Task[] = [];
while((tasks[current_stage] || []).length > 0) { while((tasks[current_stage] || []).length > 0) {
@ -118,6 +118,7 @@ namespace loader {
await Promise.all([...promises]); await Promise.all([...promises]);
if(errors.length > 0) { if(errors.length > 0) {
console.groupEnd();
console.error("Failed to execute loader. The following tasks failed (%d):", errors.length); console.error("Failed to execute loader. The following tasks failed (%d):", errors.length);
for(const error of errors) for(const error of errors)
console.error(" - %s: %o", error.task.name, error.error); console.error(" - %s: %o", error.task.name, error.error);
@ -126,12 +127,22 @@ namespace loader {
} }
if(current_tasks.length == 0) { if(current_tasks.length == 0) {
if(current_stage < Stage.LOADED) if(typeof(current_stage) === "undefined") {
console.debug("[loader] entering next state (%s). Last state took %dms", Stage[current_stage + 1], (end = Date.now()) - begin); current_stage = -1;
else console.debug("[loader] Booting app");
} else if(current_stage < Stage.INITIALIZING) {
console.groupEnd();
console.debug("[loader] Entering next state (%s). Last state took %dms", Stage[current_stage + 1], (end = Date.now()) - begin);
} else {
console.groupEnd();
console.debug("[loader] Finish invoke took %dms", (end = Date.now()) - begin); console.debug("[loader] Finish invoke took %dms", (end = Date.now()) - begin);
}
begin = end; begin = end;
current_stage += 1; current_stage += 1;
if(current_stage != Stage.DONE)
console.groupCollapsed("Executing loading stage %s", Stage[current_stage]);
} }
} }
console.debug("[loader] finished loader. (Total time: %dms)", Date.now() - load_begin); console.debug("[loader] finished loader. (Total time: %dms)", Date.now() - load_begin);
@ -977,6 +988,7 @@ try { /* lets try to print it as VM code :)*/
let hello_world_code = hello_world.toString(); let hello_world_code = hello_world.toString();
hello_world_code = hello_world_code.substr(hello_world_code.indexOf('() => {') + 8); hello_world_code = hello_world_code.substr(hello_world_code.indexOf('() => {') + 8);
hello_world_code = hello_world_code.substring(0, hello_world_code.lastIndexOf("}")); hello_world_code = hello_world_code.substring(0, hello_world_code.lastIndexOf("}"));
hello_world_code = hello_world_code.replace(/(?!"\S*) {2,}(?!\S*")/g, " ").replace(/[\n\r]/g, "");
eval(hello_world_code); eval(hello_world_code);
} catch(e) { } catch(e) {
hello_world(); hello_world();

View file

@ -4,7 +4,7 @@ const WASM_ERROR_MESSAGES = [
'no native wasm support detected' 'no native wasm support detected'
]; ];
this["Module"] = this["Module"] || {}; this["Module"] = this["Module"] || ({} as any); /* its required to cast {} to any!*/
let initialized = false; let initialized = false;
Module['onRuntimeInitialized'] = function() { Module['onRuntimeInitialized'] = function() {